【发布时间】:2016-10-22 09:00:34
【问题描述】:
我正在尝试使用实体框架代码优先方法创建 1-n 关系。以下是我的课程
public class User
{
[Key]
public int UserID { get; set; }
//public virtual Vote Vote { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Bio { get; set; }
[Required]
public string Education { get; set; }
[Required]
public string Experience { get; set; }
public string Password { get; set; }
}
接下来是我的第二节课
public class Vote
{
[Required]
[Key]
public int VoteID { get; set; }
[ForeignKey("UserID")]
[Required]
public virtual User User { get; set; }
//public virtual int UserID { get; set; }
[Required]
public int VoteCount { get; set; }
[Required]
public int UserID { get; set; }
}
用户和投票和 1-n 关系,在我的例子中,我的意思是用户 ID 应该是投票表中的外键。但是当我用以下命令创建数据库时
enable-migrations -ContextTypeName ProfileOne.PO -Force
Add-migration PO
update-database
我没有得到任何外键或列名UserID
任何帮助将不胜感激,为什么我无法达到结果。
【问题讨论】:
-
这应该使用
UserID创建一个Vote表。但关系是 1-n(用户有很多票),而不是 1-1。如果没有创建UserID,我们看不到代码中的其他错误。 -
我相信在这种情况下 EF 期望一对一的关系。根据 EF 版本,该属性可能会被忽略,因为约定在这种关系中使用 PK 作为 FK。
-
这应该创建外键。我们在这里遗漏了部分谜题。很容易为这类问题创建一个minimal reproducible example。
标签: .net asp.net-mvc entity-framework entity-framework-6