2009-09-14 64 views
2

讓我說我正在做一個基本的交易系統,我有以下對象。Fluent Nhibernate AutoMapping - 2個外鍵到同一個表?

public class User 
{ 
    public virtual int Id{get; set;} 
} 

public class Transaction 
{ 
    public virtual int Id{get; set;} 
    public virtual Item Item {get; set;} 
    public virtual User Seller{get; set;} 
    public virtual User Buyer{get; set;} 
} 

請注意,我有兩個關係返回到用戶對象。當FHN生成表模式我從事務表反饋給用戶表,「Buyer_id」 3個FK關係,「Seller_id」,「USER_ID」

我認爲這是自動生成的「USER_ID」字段錯誤地基礎上,事實上它默認期望引用屬性被稱爲「用戶」

我將如何使用FNH指定此映射?

回答

8

Yarg!

做自動映射,當我終於想通了,你必須有兩個獨立的有很多映射

return Fluently.Configure() 
    .Database(persistenceConfigurer) 
    .Mappings(m => m.AutoMappings.Add(
     AutoMap.AssemblyOf<User>() 
      .Override<User>(map=> map.HasMany(user=> user.Transactions).KeyColumn("Buyer_id")) 
      .Override<User>(map => map.HasMany(user => user.Transactions).KeyColumn("Seller_id"))     
     )) 
    .ExposeConfiguration(BuildSchema) 
    .BuildSessionFactory(); 
指定覆蓋
+5

開始「Yarg」任何答案得到我的投票 – 2009-09-15 19:03:24

相關問題