【问题标题】:Domain Driven Desing applying in .Net with Entity Framework领域驱动设计在.Net中应用实体框架
【发布时间】: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


【解决方案1】:

我个人认为微软西班牙在提供学习示例方面做得很好。它不适合“胆小鬼”,也不是“唯一的方法”,但您可能会觉得它很有趣。看看https://microsoftnlayerapp.codeplex.com/

【讨论】:

  • 我不知道你读过 Scott Millett 写的“专业 ASP.Net 设计模式”一书。本书中有一个真正的应用程序,名为 Agath's Storefront。此应用程序使用 NHibernate 和域驱动设计。在这个应用程序中创建了一个模型库,模型通过 XML 文件映射到 Nhibernade DLL 中。但没有使用实体框架。
猜你喜欢
  • 2011-01-05
  • 2011-12-11
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 2020-10-26
  • 2010-11-14
  • 1970-01-01
  • 2011-08-01
相关资源
最近更新 更多