为什么我得到“;未找到父密钥”;
本文关键字:密钥 为什么 | 更新日期: 2023-09-27 18:27:31
我得到这个错误有什么原因吗。在发布这个问题之前,我真的搜索了这个网站。我评论了我之前的一些尝试。
我实现的是多对一连接。因此,PersonAccount有一个BankId列(FK),而Bank对PersonAccount一无所知。在数据库级别上实现了FK约束。
public BankMap()
{
Table("Bank");
Not.LazyLoad();
Id(x => x.Id).Column("BankId").GeneratedBy.Sequence("BANK_SEQ");
Map(x => x.BankName);
HasMany(x => x.PersonAccounts).KeyColumn("BANKID").Cascade.All();
//HasMany(x => x.PersonAccounts).KeyColumn("BANKID").Cascade.All().Inverse();
//HasMany(x => x.PersonAccounts).KeyColumn("BANKID").Cascade.All().None();
// HasMany(x => x.PersonAccounts)
//.Cascade.AllDeleteOrphan()
//.KeyColumn("BANKID");
}
public PersonAccountMap()
{
Table("PersonAccounts");
Not.LazyLoad();
Id(x => x.Id).Column("AccountId").GeneratedBy.Sequence("PERSONACCOUNTS_SEQ");
Map(x=>x.PersonName);
References(x => x.Bank, "BANKID");
//References(x => x.Person, "PERSONID").Cascade.None();
}
希望你能帮助我。
感谢
我认为您需要将BankMap更改为具有:
HasMany(x => x.PersonAccounts).KeyColumn("BANKID").Inverse();
那么银行将不会更新个人账户。
还有一个提示,根据我自己的经验(你不需要这么做),我倾向于在映射中发生更改后重新构建项目,因为我偶尔会发现VS中的映射项目没有用我的最新更改正确构建。