【发布时间】:2013-10-07 05:10:28
【问题描述】:
我想创建一个有几个层的 asp.net 应用程序(经典层设计):一个业务层和一个表示层。数据层似乎已经过时,因为 EF 完成了所有工作。
所以当我在业务层中创建 EF 模型时,我无法使用表示层中的实体,因为我无法为显示和验证等添加数据注释(尤其是显示属性通常是表示层的一部分)。对我来说,将所有数据复制到表示层中类似的“viewmodel”类似乎不太好。
那么有没有一种好的方法可以在业务层中创建对象上下文并为实体提供共享的“合同”组件?我发现的大多数示例都将所有内容放在一个组件中,我认为这不是更复杂应用程序的最佳方法。
【问题讨论】:
-
查看模型是要走的路。对你来说可能看起来不太好,但这是正确的方法。
-
EF IS 你的数据层。您应该构建它,以免它潜入您的业务层。如果你的老板说“停止所有 EF 工作!我们必须切换到休眠模式,因为我的侄子说了规则!”?
-
@paqogomez - 解雇你的老板?
-
我希望保存所有的写作工作和运行时数据复制。是的,我在过去的 EF 和视图模型中使用了这种方法。
-
我希望保存所有的写作工作和运行时数据复制。是的,我过去使用过这种方法:EF 和视图模型。但是在我的上一个项目中,我意识到,例如在我的应用程序的管理部分,大多数视图模型与所有 EF 模型类非常相同,并且我有很多编写工作只是为了映射只有 id 和 name 加上最终一个标志的模型.谢谢大家的回复。在我看来,我过去在规划分层应用程序时所做的一切都是正确的。
标签: c# asp.net asp.net-mvc entity-framework