NHibernate多对一的复合id实体
本文关键字:id 实体 复合 多对一 NHibernate | 更新日期: 2023-09-27 18:15:32
我如何映射一个多对一的关系,其中"一个"实体有一个复合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
看起来像这样:
public class ManyEntity
{
public int Id{get;set;}
public SingleEntity Single{get;set;}
public string Name{get;set;}
}
如何使用NHibernate?
Fluent允许您使用CompositeId()
方法指定复合id映射。然而,正如我们在这个方法文档中读到的:
注意:尽可能使用代理键而不是组合键。
复合id通常需要大量的努力来讨论/没有收获。如果可以,我强烈建议使用代理键。这就容易多了。
然而,如果你被你的DB模式困住了,也许这些问题可以帮助你:
- Fluent NHibernate和复合ID与单列名
- Fluent NHibernate - Saving Entity with Composite Key Fluent NHibernate复合ID表问题
如果你谷歌这些短语(流利的nhibernate复合id),你会很快发现很多链接也不知怎么地包含单词"problem"…