代码之家  ›  专栏  ›  技术社区  ›  Christian V

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

  •  14
  • Christian V  · 技术社区  · 15 年前

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

    目前的基本布局是:

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

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

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

    4 回复  |  直到 15 年前
        1
  •  14
  •   Shiraz Bhaiji    15 年前

    安德烈·耶梅里亚诺夫(Andrey Yemelyanov)就这一确切主题发表了一篇硕士论文:

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

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

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

        2
  •  3
  •   rayd09    15 年前
    我认为域模型中的实体是POCO对象,它们应该映射到/来自实体框架对象。这是一个好的解决方案吗?

    我想是的。

    虽然我们在Java世界中,这是我们做得相当成功的事情。我们的域类包含大部分业务逻辑。每个都有一个对瘦数据实体对象的引用,并将持久属性的获取和设置委托给数据实体。

        3
  •  2
  •   jeroenh    15 年前

    这个 S#arp architecture project 是指导应用DDD的良好起点。它是以NHiberinate为基础的,但所采用的原则应同样适用于ef。

        4
  •  2
  •   Hans Karlsen    15 年前

    我会从capableobjects.com上找到企业核心对象(eco)。

    它确实 everything you would ever want from a DDD framework