Nhibernate 指定外键列的名称

Nhibernate 指定外键列的名称,nhibernate,fluent-nhibernate,fluent-nhibernate-mapping,Nhibernate,Fluent Nhibernate,Fluent Nhibernate Mapping,以及: 以及: 这些都会产生两列,一列是我想要的(“Transaction_id”),另一列是原始的(“TransactionModel_id”) 我是否还需要对的HasMany做些什么 编辑模型: References(x => x.Transaction).Column("Transaction_id").ForeignKey("Id").Fetch.Join(); 假设Transaction\u Id是相关TransactionModel的外键,则需要将引用语句更改为: alter

以及:

以及:

这些都会产生两列,一列是我想要的(“Transaction_id”),另一列是原始的(“TransactionModel_id”)

我是否还需要对
的HasMany做些什么

编辑模型:

References(x => x.Transaction).Column("Transaction_id").ForeignKey("Id").Fetch.Join();

假设
Transaction\u Id
是相关
TransactionModel
的外键,则需要将引用语句更改为:

alter table TransactionIdentities 
    add constraint Id 
    foreign key (Transaction_id) 
    references Transactions

alter table TransactionIdentities 
    add constraint FK958B77026F5C4B80 
    foreign key (TransactionModel_id) 
    references Transactions
这将覆盖nHibernates对字段
TransactionModel\u id

看看这个问题,我认为您必须将您的
HasMany
映射更改为:

 References(x => x.Transaction).Column("Transaction_id");

没有工作,我得到了两个,一个叫做“Transaction\u id”,一个叫做“Transaction Model\u id”。在
ClassMap
上有
HasMany
链接的地方,我需要做些什么吗?@weston您能发布
TransactionModel
TransactionIdentityModel
please@weston感谢我最初应该问的一个问题,当你说“产生2列”时,确切的位置在哪里?,当您检查正在执行的SQL时?您是否在某个地方遇到运行时错误?在为创建表而生成的sql中,我看到了旧列和新列,请参见“问题编辑”。@weston查看更新的答案-我做了一些研究,发现了另一个类似问题-希望我修改的答案能起作用或为您指明正确的方向!
References(x => x.Transaction).Column("Transaction_id").ForeignKey("Id").Fetch.Join();
public class TransactionModel
{
    /// <summary>
    /// For NHibernate
    /// </summary>
    protected TransactionModel()
    {
    }

    public static TransactionModel FromId(TransactionIdentityModel tranIdentity)
    {      
        return new TransactionModel
            {
                Identities = new List<TransactionIdentityModel> { tranIdentity }
            };
    }

    public virtual Guid Id { get; protected set; }

    public virtual IList<TransactionIdentityModel> Identities { get; protected set; }
}

public class TransactionIdentityModel
{        
    public virtual Guid Id { get; protected set; }

    public virtual TransactionModel TransactionModel { get; set; }
}
alter table TransactionIdentities 
    add constraint Id 
    foreign key (Transaction_id) 
    references Transactions

alter table TransactionIdentities 
    add constraint FK958B77026F5C4B80 
    foreign key (TransactionModel_id) 
    references Transactions
 References(x => x.Transaction).Column("Transaction_id");
 HasMany(x => x.Identities).KeyColumn("Transaction_id")