0

在我的域模型中,它的大小适中 - 大约 20 个生成的表 - 只有一个实体框架没有映射关系,我不知道为什么。AccountRecord它是 an和 an之间的关系 (1-1) Account。AnAccount是指拥有用户的帐户。

这些类看起来像这样:

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

4

1 回答 1

0

我只是想通了这一点,以为如果有人发现这个谷歌搜索,我会提出答案。

EF 没有创建列,而是将 AccountRecordId 上的外键放入 Accounts 表中,因为存在 1-1 关系。DatabaseGeneratedOption.Identity解决方案是从 Account Record PK中删除。

于 2013-06-19T02:59:32.627 回答