如何映射“one”实体具有复合ID的多对一关系? 例如:
public class SingleEntity
{
public int FirstId{get;set;}
public int SecondId{get;set;}
public string SomeData{get;set;}
}
实体ManyEntity
对SingleEntity
的FirstId和SecondId都有(除了primaryKey之外)列,所以我希望能够对这种关系进行处理,以便ManyEntity
能够看起来像那样:
public class ManyEntity
{
public int Id{get;set;}
public SingleEntity Single{get;set;}
public string Name{get;set;}
}
我怎样才能使用NHibernate?
答案 0 :(得分:0)
Fluent允许您使用CompositeId()
方法指定复合ID映射。但是,我们可以在这个方法文档中读到:
注意:尽可能在复合键上使用代理键。
复合ID通常需要付出很多努力才能讨论/无法获得收益。 如果可以,我强烈建议使用代理键。这更容易。
然而,如果您坚持使用数据库架构,那么这些问题可能会对您有所帮助:
如果你谷歌那些短语(流利的nhibernate复合id),你会很快发现很多链接也包含“问题” ......