功能NHibernate自动映射 - 2个外键相同的表?(Fluent Nhibernate Au

2019-08-06 03:22发布

让说我正在做一个基本的交易系统,在那里我有以下对象。

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生成表模式我从事务表反馈给用户表3间FK的关系,“Buyer_id”,“Seller_id”,“USER_ID”

我认为这是汽车基础上,事实上,它在默认情况下产生的“USER_ID”字段错误地预计,引用属性被称为“用户”

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

Answer 1:

司法!

我终于想通了做自动映射,当你有两个单独的指定覆盖有许多映射

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


文章来源: Fluent Nhibernate AutoMapping — 2 foreign keys to same table?