【发布时间】:2013-05-21 02:54:36
【问题描述】:
我正在学习领域驱动设计,我看到了以下 Aggregate、UnitOfWork 等一些概念……我正在阅读包括基于 Java 的应用程序的书籍。但是 Entity Framework 是在 .Net 框架中成长起来的。实体框架包括DbContext, IDbSet,...
有没有很好的示例在 .Net 中应用领域驱动设计
匹配概念
【问题讨论】:
-
说实话,我认为您不应该将 EF 实体用于您的域模型。 EF 实体应该隐藏在您的存储库后面,并且应该是您的数据访问层的实现细节。
-
@Steven 我同意 100%...除非使用 EF 代码优先方法。在这种情况下,一个干净的域是完全可以实现的。您将实体保留为 POCO,并将映射与 DbContext 和其他与框架相关的内容一起移动到基础架构代码中的单独类中。简而言之,您没有 EF 实体之类的东西,您有基础结构代码知道如何持久化的域类。
-
@dmusial 但即使首先使用代码,也很难获得真正的域模型,因为聚合隐藏了它们的大部分内部结构。如果可能,您将拥有一个相当复杂的映射。
-
“老实说,我认为你不应该为你的域模型使用 EF 实体” Steven 如果我创建一个包含模型实体的模型库。我可以在实体框架中使用它吗?但是数据库是存在的。
-
嗯,我认为你可以先使用 EF 和代码。编写映射到您的实体的您自己的数据库连接是一项艰巨的工作......所以要务实并适应您的场景。
标签: entity-framework orm domain-driven-design