3

我想创建一个多层(3 层)应用程序。EF 是首选的 ORM。

我应该使用 EF 直接在我的表示层中创建的实体,还是应该创建新的自定义实体并映射实体?如果是这样,我应该在自定义实体之上创建接口吗?

我应该将 EF 生成的 .edmx 文件放在数据层中吗?

谢谢

4

2 回答 2

3

我个人会为我的表示层创建 ViewModel。您希望尽可能地抽象出您的 EF 模型。

您的 ViewModel 不需要任何接口,它们只是简单的POCO / DTO

于 2012-04-27T11:22:05.430 回答
2

数据库的需求和数据消费者的需求经常不一致,因此通常需要不同的模型。

例如,考虑添加新客户的用户故事。故事通常包括对办公室电话号码和传真号码的“需求”。

马上,数据库设计人员会以“重复数据”的方式,我需要一个一对多的关系,这样我们不仅可以容纳两个电话号码,而且可以容纳几乎无限数量的电话,按类型。(让我们甚至不要陷入电话号码是多对多或一对多的痛苦)

同时回到报告,屏幕,移动设备,你有什么 UI 体验——那个设计师说“我不在乎你能存储多少电话号码,我只处理两个:办公室号码和传真号码”您可以说用户的核心是非规范化的 :)

  1. 使您的数据库模型保持某种合理的规范化水平。
  2. 让你的用户界面的数据模型和你的用户一样去规范化
  3. 在中间开发一层,将一个模型映射到另一个模型。
于 2012-04-27T12:04:00.647 回答