![](/img/trans.png)
[英]NHibernate 2.0 mapping a composite-id inside a composite-id
[英]NHibernate many-to-one with a composite-id entity
如何映射“一个”实体具有复合ID的多对一关系? 例如:
public class SingleEntity
{
public int FirstId{get;set;}
public int SecondId{get;set;}
public string SomeData{get;set;}
}
实体ManyEntity
拥有(除了primaryKey之外) SingleEntity
的FirstId和SecondId列,因此我希望能够ManyEntity
关系,以便ManyEntity
看起来像这样:
public class ManyEntity
{
public int Id{get;set;}
public SingleEntity Single{get;set;}
public string Name{get;set;}
}
如何使用NHibernate做到这一点?
Fluent允许您使用CompositeId()
方法指定复合ID映射。 但是,正如我们可以在此方法文档中阅读的那样:
注意:尽可能使用替代键而不是组合键。
复合ID通常需要花费很多精力才能获得可讨论的/没有收益。 如果可以的话 ,我强烈建议您使用代理密钥。 这要容易得多。
但是,如果您坚持使用数据库模式,也许这些问题可以帮助您:
如果您用谷歌搜索这些短语(流利的nhibernate复合ID),您将很快发现很多链接都包含“问题”一词。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.