Nhibernate 指定外键列的名称
以及: 以及: 这些都会产生两列,一列是我想要的(“Transaction_id”),另一列是原始的(“TransactionModel_id”) 我是否还需要对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
的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")