簡體   English   中英

流利的Nhibernate AutoMapping - 同桌的2個外鍵?

[英]Fluent Nhibernate AutoMapping — 2 foreign keys to same table?

假設我正在做一個基本的交易系統,我有以下對象。

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;}
}

請注意我如何將兩個關系返回給User對象。 當FHN生成表模式時,我從事務表返回到用戶表的3 FK關系,“Buyer_id”,“Seller_id”,“User_id”

我認為它是基於默認情況下將引用屬性稱為“用戶”的事實錯誤地自動生成“User_id”字段

如何使用FNH指定此映射?

Yarg!

我最終在做自動映射時想出來,你必須指定一個帶有兩個獨立的Has Many映射的覆蓋

   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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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