首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ComplexType与联想

ComplexType与联想
EN

Stack Overflow用户
提问于 2012-08-23 11:49:04
回答 1查看 766关注 0票数 3

有关MSDN的文档对此主题非常清楚:"ComplexTypes不能包含关联“。

在阅读复杂类型时,最常用的示例是Address ComplexType:

代码语言:javascript
复制
class Person
{
    public Address Address { get; set; }
}
class Address
{
    public string Street { get; set; }
    public string Zip { get; set; }
    public string CountryId { get; set; }
}

我想把这个国家定义为一个协会:

代码语言:javascript
复制
class Address
{
    //other properties ....
    public Country Country { get; set; } //vs: string CountryId { get; set; }
}

如您所见,我想在地址ComplexType中添加一个协会到一个国家。不幸的是,这是不可能的。这使得完整的例子毫无意义,因为我必须在Person类型本身上定义国家协会,这将使整个地址-CT毫无用处。

我们目前正在使用NHibernate建立一个项目,因为EF缺乏我们的项目所需的一些功能,但这很可能在EF 6中得到支持。考虑到EF的快速发展和最近宣布的开源模型,我们希望在未来保持从NH到EF的可能的迁移。在NHibernate ComplexTypes ("Components")中,确实支持关联,因此,如果我们现在将它们与NH一起使用,那么迁移到EF是不容易的。

我想知道这是否目前的限制?

  • 将来是否有计划支持这样的功能?
  • 是否有明确的理由不支持这一功能,还是仅仅是“未实现atm"?
EN

回答 1

Stack Overflow用户

发布于 2012-08-25 22:44:01

如评论中所指出的,可能有一些计划。

关于第二个问题,我会说“此时此刻”。

如果发展商有明确的理由,我认为没有这个功能是不合理的。是的,它应该被明智地使用,但是不应该有任何API吗?

并不是每个实体都与另一个实体直接关联,因此限制这一点是没有意义的。如果我有一个必须引用一个实体的Address,为什么这与一个实体的单个属性不同?

此上下文中的复杂类型与简单类型没有什么不同。也许在某些情况下,复杂的类型可以被识别为“可重用”。但似乎在DDD“规则”下,复杂类型不能引用实体是没有真正原因的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12090877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档