这是关于使用 EF DB First 模型的分层设计。
到目前为止,我之前没有使用过实体框架,只使用了实体并放置在具有域/DTO 子文件夹的不同项目中。在 DataAccessLayer、业务层和 MVC 应用程序中也引用了相同的内容,并使用通常的 ADO.Net 查询编写了代码,并为我的实体准备了 POCO。没有问题。
现在我们正在使用 Entity Framework DB First 模型开发应用程序。我们选择了这个 DB First 模型,因为 DB 设计不在我们的控制范围内。它由 DBA 完成。
我想在这里重用旧的简单设计。但不确定我应该在哪里/哪一层完全适合 edmx 文件和生成的 POCO 类。我没有找到任何具有分层架构风格的样本使用 DBFirst 方法。
我提到了这个。http://aspnetdesignpatterns.codeplex.com但他们使用 Nhybernate
这是旧设计的高级概述。
欢迎您对设计/样品提出任何建议。
编辑:
从下面的答案中,我认为实体框架会生成 POCO,我们可以将现有的实体/域层重命名为域层并将生成的 POCO 类放在那里。我们也可以简单地将 .edmx 保存在 DataAccessLayer 中,其中包含为 TDD 包装 EF 的 IRepository 类列表。这有意义吗?或任何有价值的点?
更新:
目前,我删除了 DataAccessLayer,只保留了实体层,它有一个 model.edmx 文件和由 EF 生成的类,以及所有实现 IRepository 的 Repository 类。我也将其称为业务层、MVC。我做得对吗?我觉得我的设计很糟糕:(请建议/帮助