EF没有为外键创建列

时间:2013-06-19 02:54:35

标签: entity-framework ef-code-first entity-framework-5

在我的域模型中,大小适中 - 大约有20个生成的表 - 实体框架没有映射的关系只有一个,我无法弄清楚原因。它是AccountRecordAccount之间的关系(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

1 个答案:

答案 0 :(得分:0)

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

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

相关问题