MSDN 上的文档对这个主题很清楚:“ComplexTypes cannot contain Associations”
在阅读复杂类型时,最常用的例子是 Address ComplexType:
class Person
{
public Address Address { get; set; }
}
class Address
{
public string Street { get; set; }
public string Zip { get; set; }
public string CountryId { get; set; }
}
我想将国家定义为一个协会:
class Address
{
//other properties ....
public Country Country { get; set; } //vs: string CountryId { get; set; }
}
如您所见,我想在 Address ComplexType 中添加与 Country 的关联。不幸的是,这是不可能的。这使得完整的示例毫无意义,因为我必须在 Person 类型本身上定义 Country 关联,这将使整个 Address-CT 无用。
我们目前正在使用 NHibernate 建立一个项目,因为 EF 缺少我们项目所需的一些功能,但很可能会在 EF 6 中得到支持。考虑到 EF 的快速发展和最近宣布的开源模型,我们希望保持从 NH 到 EF 的可能迁移为未来开放。在 NHibernate ComplexTypes(“组件”)中确实支持关联,因此如果我们现在将它们与 NH 一起使用,那么迁移到 EF 就不容易了。
我想知道这是否只是当前的限制?
- 未来是否有计划支持这样的功能?
- 是否有不支持此功能的明确原因,或者只是“未实现 atm”?