簡體   English   中英

NHibernate與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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM