0

我对 Code First 和 Code Migrations 有一些问题。

我有一个 User 类和一个 UserData 类(带有可选信息,例如名字/姓氏),但是当我尝试运行“Add-Migration”或“Update-Database”命令时,出现了几个错误。

我创建了用户类:

public class User
{
    public int ID { get; set; }
    public string UserName { get; set; }
    public string EmailAddress { get; set; }
    public DateTime DateOfBirth { get; set; }

    public UserData UserData { get; set; }
    public int UserDataID { get; set; }
}

和 UserData 类:

public class UserData
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string City { get; set; }
    public string Country { get; set; }
}

使用此设置,我收到错误:

为表“用户”指定了多个标识列。每个表只允许一个标识列。

尝试运行“更新数据库”时(“添加迁移”命令运行良好)。

我已经尝试将public User User { get; set; }和添加public int UserID { get; set; }到 UserData.cs,但随后出现“Add-Migration”命令错误:

无法确定类型“UserData”和“User”之间关联的主体端。此关联的主体端必须使用关系流式 API 或数据注释显式配置

知道如何解决这个问题吗?

提前致谢。

4

1 回答 1

1

从 User 类中删除UserDataID,不需要它。另外,请让public virtual UserData UserData { get; set; }EF 在您访问时为您填充它FirstName等。

于 2013-08-12T21:10:59.450 回答