【发布时间】:2016-10-25 08:34:47
【问题描述】:
我知道实体数据模型应该与真正的领域模型分开,以避免基础设施问题和领域本身之间的耦合,但我想知道如果所有领域属性都没有公共设置器,我们如何从数据模型映射到领域模型,特别是如果存储库实现驻留在项目的基础设施部分,所以我们不能使用内部属性设置器。
class DomainModel
{
string SomeProperty {get; private set:}
}
【问题讨论】:
-
用构造函数传递参数。但是 EF 已经是存储库模式和工作单元,为什么还需要基于它的另一个抽象?另外,如果您先使用代码,则不需要数据模型;只需将数据库映射到域模型。
-
@L-Four 如果 2 个不同的域模型共享同一个基础结构表,或者您需要复杂属性中的复杂属性怎么办?
-
然后使用“实体拆分”等技术。不确定您对复杂属性中的复杂属性的含义。
-
@L-Four Employee 可以有位置,可以是地址名称、街道号码、邮政编码和geo_information 的复杂类型,geo_information 可以是另一种复杂类型,这意味着你需要有嵌套的复杂类型特性。我认为实体框架不支持这一点,这意味着您的域模型将受到基础设施问题的限制。
-
当然支持,通过导航属性。
标签: c# entity-framework entity-framework-6 domain-driven-design