我阅读的一篇博客文章似乎表明值对象可以在域驱动设计中引用实体,后续说明如何在 NHibernate 中执行此操作。
我想使用 Entity Framework 4.1 做同样的事情:具体来说,让一个复杂类型引用另一个实体。举个例子,考虑一下:我有一个实体,比如说Invoice,它的Total属性类型为Currency。Currency是一个复杂类型,包含一个decimal
名为Value的属性和一个CurrencyUnit类型的Unit属性。CurrencyUnit是一个“参考数据实体”。也就是说,这个特定域中的CurrencyUnit是一个实体,而不是值对象本身。
现在虽然在 DDD 中可能“允许”,但这不是我的偏好;我不想争论是非曲直。我有兴趣了解 EF 中是否有代码优先解决方案来处理这种情况。我似乎找不到任何东西,这很奇怪,因为复杂类型映射到其实体的包含表,该表当然可以具有外键引用。