我正在构建两个 C# 三层应用程序,它们将数据获取到一个非常旧的数据库客户表中,该表有大约 100 列。它们在业务层执行一些逻辑,而表示层显示数据。
客户表的布局是——
CustomerID
Firstname
Lastname
DateOfBirth
Othervalue1
Othervalue2
Othervalue3
.
.
Othervalue95
Creationdate
Updatedate
对于这两个应用程序,我只需要客户表,但我正在使用 Entity Framework 构建一个新的数据访问层。 future 的项目将需要访问其他表并将添加到此访问层。
我将使用工作单元和存储库模式。
我的问题如下 -
应用程序 A 需要客户表列的一个子集
和
应用程序 B 需要客户表列的不同子集(与应用程序 A 的需求有一些重叠)
如何进行数据层到这两个独立业务层的映射?我知道我可以使用 automapper 来执行从数据实体类到业务层类的映射,但是我将有两个不同的业务层客户类。
我已经阅读了一些有关 DTO 的内容,但我看不出在这个 n 层应用程序中应该去哪里。
最佳答案
您可以根据您的应用程序设计使用其中任何一个
1 - 将客户表映射到两个或多个实体
2 - 有一个基本实体,如 CustomerBase 和 2 个或更多子实体。
3 - DTO 是数据传输对象,它们(通常)是可变的。更改它们不会导致对数据库进行 CRUD 操作。
DTO 用于以下场景:客户实体是一个重量级对象(例如 100 列),您只需要该数据的一个子集(例如 20 列)。
DTO 对象和实际实体之间的转换可以通过多种方式实现,例如自动映射器、手动运算符重载等等......
希望对你有帮助
关于c# - 三层 Entity Framework 应用程序中的 DTO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14802516/