领域驱动设计,.NET 和实体框架

14

我对领域驱动设计很陌生,但希望学习并在新应用程序中使用它。 我将使用Entity Framework进行数据访问。

目前的基本布局为:

ASP.NET MVC和其他客户端(移动设备等)
|
Web服务
|
领域模型(服务、存储库、聚合、实体和值对象)
|
数据访问层(Entity Framework)
|
数据存储(SQL Server)

最佳方法是什么可以在数据访问层和领域模型之间传输数据? 我认为领域模型中的实体应该是POCO对象,并且它们应该被映射到/从Entity Framework对象中。这是一个好的解决方案吗?

如果是这样的话:
这种映射应该在哪里发生?(领域模型层或数据访问层)
在哪里以及如何查询Entity Framework(例如根据搜索返回列表)?


7
请记住,DDD最终只是一种以客户的语言(领域)有效沟通的方法,然后以与该语言一致的方式设计应用程序。它本质上不是开发技术。因此,在何处放置什么并没有硬性规定。 - Robert Harvey
6
@Robert Harvey:非常正确,但在特定(可能相当普遍)的情况下如何应用DDD指南仍然非常有用。 - jeroenh
4个回答

14

链接未找到。 - Bala

3
我认为领域模型中的实体应该是POCO对象,并且它们应该被映射到/从Entity Framework对象中。这是一个好的解决方案吗?

我认为是的。

我们已经成功地做过这件事情,尽管在我的情况下是在Java世界中。我们的领域类包含大部分业务逻辑。每个类都引用一个轻量级的数据实体对象,并将持久化属性的获取和设置委托给数据实体。


3
我会选择capableobjects.com的Enterprise Core Objects (ECO)框架。它可以提供你所需的领域驱动设计框架的一切。

2

S#arp 架构项目是应用领域驱动设计(DDD)的良好起点。它基于 NHibernate,但所使用的原则同样适用于 EF...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接