【发布时间】:2013-01-22 14:52:05
【问题描述】:
我为 MVC4 webapp + EntityFramwork5 开发了一个 3 层架构。 我想保持单独的层,所以只有 DAL 知道我正在使用 EF,例如。
实际上我有很多课程要管理:
DAL
- 实体 POCO
- 实体数据上下文:DbContext
- 实体存储库
BL
- 实体视图模型
- 实体服务(实例化实体存储库)
网络
- 实体控制器(实例化实体服务)
这是有效的,但很难维护。我正在考虑删除 DAL 中的实体存储库并直接使用 DataContext(如果我没记错的话,毕竟 DbContext 已被设计为存储库和工作单元),但这将迫使我添加对我的 BL 中的 EntityFramework.dll。不是什么大问题,但我不确定它是否是最佳选择。
有什么建议吗?
(希望我提供了足够的信息,如果您需要更多信息,请询问)
【问题讨论】:
-
我不太清楚为什么你提到很难维护你的项目。你觉得哪一层很难维护?
-
例如,如果我向 POCO 添加一个字段,我需要更新数据上下文(并非总是如此)、dal 存储库、BL 视图模型、BL 服务.. 不少。 . 但在这种结构中可能是必须的(或设计错误)
-
嗨@Davide,你也可以为你的项目应用一些GOF设计模式。例如,如果您可以向 POCO 添加一个字段,您可以使用“Builder”模式:)。
标签: asp.net-mvc-4 entity-framework-5 n-tier-architecture