14

我是域驱动设计的新手,但想学习它并将其用于新应用程序。我将使用实体框架进行数据访问。

到目前为止的基本布局是:

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

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

如果是这样:
这种映射应该如何以及在哪里发生?(域模型层或数据访问层)
我应该在哪里以及如何查询实体框架(即根据搜索返回列表)?

4

4 回答 4

14

ANDREY YEMELANOV 就这个主题完成了一篇硕士论文:

http://gupea.ub.gu.se/dspace/bitstream/2077/10462/1/gupea_2077_10462_1.pdf

随着支持 POCO 对象的 EF 4 的发布,这将变得更加容易。

同时,您可以尝试使用 automapper 在域和 EF 对象之间进行映射,请参阅:http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/01/22/automapper-the-object-object-mapper。 aspx

于 2010-02-12T11:30:08.760 回答
3
我认为域模型中的实体是 POCO 对象,它们应该映射到实体框架对象/从实体框架对象映射。这是一个好的解决方案吗?

我认为是这样。

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

于 2010-01-16T21:13:49.007 回答
3

我会从 ableobjects.com 购买 Enterprise Core Objects (ECO)

可以满足您对 DDD 框架的所有要求

于 2010-01-18T09:46:18.010 回答
2

S#arp 架构项目是指导应用 DDD的绝佳起点。它基于 NHibernate,但使用的原则应该同样适用于 EF...

于 2010-01-17T16:24:28.017 回答