我有什么理由得到这个错误。在发布此问题之前,我真的搜索了这个网站。我评论了我之前的一些尝试。
我实施的是多对一连接。 因此,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();
}
希望你能帮助我。
由于
答案 0 :(得分:0)
我认为你需要改变BankMap:
HasMany(x => x.PersonAccounts).KeyColumn("BANKID").Inverse();
然后银行不会更新PersonAccounts。
根据我自己的经验(你不需要这样做)还有一个提示,我倾向于在映射更改后重建项目,因为我偶尔发现VS中的映射项目没有正确构建我的最新更改。 / p>