我在Code First和Code Migrations方面遇到了一些问题。
我有一个User类和一个UserData类(带有可选信息,如名/姓),但是当我尝试运行' Add-Migration'或者'更新 - 数据库'命令,我收到了几个错误。
我创建了User类:
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; }
}
使用此设置我收到错误:
为表'用户'指定了多个标识列。只有一个 允许每个表的标识列。
尝试运行时更新数据库' (' Add-Migration'命令运行正常)。
我已尝试将public User User { get; set; }
和public int UserID { get; set; }
添加到UserData.cs,但随后我发现了“添加迁移”错误。命令:
无法确定类型' UserData'之间关联的主要结尾。和'用户'必须使用关系流畅API或数据注释
显式配置此关联的主要结尾
知道如何解决这个问题吗?
提前致谢。
答案 0 :(得分:1)
从User类中删除UserDataID
,不需要它。
另外,设置public virtual UserData UserData { get; set; }
以便EF在您访问FirstName
等时为您填充