【发布时间】:2013-03-20 09:23:53
【问题描述】:
我有几个关于在使用实体框架作为数据访问层的 MVC3 Web 应用程序中解耦域层和数据层的问题。
就目前而言,我的控制器完全依赖于 EF 类,在花了一天的大部分时间阅读依赖注入之后,我试图将它们解耦。
我的第一个问题是 - 我是否需要将所有 EF 类有效地复制到我的业务层中?我显然不能再使用 EF 类,所以在我看来,我需要创建一个正在使用的每个表类的副本才能使其正常工作。这是正确的吗?例如,如果我有 50 个 EF 类代表我的数据库中的 50 个表,我是否需要在我的业务层中创建 50 个新类? -> 然后无限期地维护它们?这听起来工作量很大。
其次,我是否正确地假设依赖关系被翻转,而不是业务层依赖于数据层,数据层最终变得依赖于业务层?
【问题讨论】:
-
我创建了单独的视图模型供我的视图使用,并从我的 EF 模型中填充这些视图模型。
-
我想你会发现现在有一种趋势是在你的控制器中使用 EF 模型(即使你正在耦合到 EF),只要你不将这些模型返回到通常的视图中不是什么大问题,除非你打算改变持久性框架,现在越来越少的理由来
标签: c# asp.net-mvc-3 entity-framework dependency-injection decoupling