.net Fluent Nhibernate自动映射--将两个外键映射到同一个表?
假设我正在做一个基本的事务系统,其中有以下对象.net Fluent Nhibernate自动映射--将两个外键映射到同一个表?,.net,nhibernate,orm,fluent-nhibernate,.net,Nhibernate,Orm,Fluent Nhibernate,假设我正在做一个基本的事务系统,其中有以下对象 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
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关系,“买方id”、“卖方id”、“用户id”
我认为它自动生成“User\u id”字段是错误的,因为默认情况下它希望引用属性被称为“User”
如何使用FNH指定此映射?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();
流畅地返回。Configure()
.数据库(persistenceConfigurer)
.Mappings(m=>m.AutoMappings.Add(
自动映射
.Override(map=>map.HasMany(user=>user.Transactions).KeyColumn(“买方id”))
.Override(map=>map.HasMany(user=>user.Transactions).KeyColumn(“卖方id”))
))
.ExposeConfiguration(构建架构)
.BuildSessionFactory();