在我的域模型中,大小适中 - 大约有20个生成的表 - 实体框架没有映射的关系只有一个,我无法弄清楚原因。它是AccountRecord
和Account
之间的关系(1-1)。 Account
是指拥有用户的帐户。
这些课程如下:
public class Account
{
int ID { get; set; }
/* snip */
AccountRecord Record { get; set; }
}
public class AccountRecord
{
int ID { get; set; }
Account Account { get; set; }
/* snip */
}
映射定义如下:
public AccountConfiguration()
{
// Table name and primary key
ToTable("Accounts");
HasKey(x => x.ID);
Property(x => x.ID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
.HasColumnName("AccountId");
HasOptional(x => x.AccountRecord).WithRequired(x => x.Account);
}
public AccountRecordConfiguration()
{
// Table name and primary key
ToTable("AccountRecords");
HasKey(x => x.ID);
Property(x => x.ID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
.HasColumnName("AccountRecordId");
HasRequired(x => x.Account).WithOptional(x => x.AccountRecord);
}
正在创建两个实体的所有其他列,而不是这一列。当我尝试为帐户设置帐户记录时,我会收到以下信息:A dependent property in a ReferentialConstraint is mapped to a store-generated column
答案 0 :(得分:0)
我只是想出来了,以为如果有人发现这个谷歌搜索,我会把答案提出来。
EF没有创建列,而是将AccountRecordId上的外键放入Accounts表,因为存在1-1关系。解决方案是从帐户记录PK中删除DatabaseGeneratedOption.Identity
。