【发布时间】:2014-05-08 02:36:55
【问题描述】:
我们目前有一个生命周期很长的项目,其中数据层实体被用作域模型实体,这显然让我们在多年扩展后感到有些悲伤。我们中的一小部分人的任务是从根本上重写应用程序的框架,然后我们将逐步过渡到该框架。
我们的第一个决定是确保我们的域实体不基于数据库。相反,我们与企业主进行了沟通,并按照通用语言原则构建了我们的对象。域模型代码现已全部完成,我们对此相当满意。
现在这是问题的症结所在。我们正在使用 Microsoft Entity Framework 6 使用数据库优先来生成我们的数据层,因为在所有内容都迁移到新架构之前,我们无法开始将数据库更改为代码优先,并且我们需要数据库中的数据。所以我们计划做的是将我们的域实体映射到 EF6 实体(反之亦然)。
我的第一个想法是使用 AutoMapper 在存储库实现中来回映射,但我觉得我缺少一些简单的东西,或者 Entity Framework 6 中的一些我没有使用或误用的功能解决这个问题。我觉得我们不可能是唯一遭受这种情况的群体。
谁能提供一些关于我们可以做些什么来解决这个问题的见解?需要注意的是,我们坚持不包括上下文或任何与我们的域模型相关的数据层,包括工作单元。我们使用 Autofac 作为我们的 DI 容器,并且多个应用程序使用我们的域模型。
【问题讨论】:
标签: entity-framework architecture domain-driven-design automapper entity-framework-6