我有一个关于 EF Core 中的导航属性的问题,我似乎无法弄清楚。如果我有一张桌子和一张相关的桌子:
Person
=========
PersonId
Name
Surname
RoleId
Role
=========
RoleId
RoleName
现在我用 C# 实现它的模型
public class Person
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int PersonId {get; set;}
public string Name {get; set;}
public string Surname {get; set;}
public int? RoleId { get; set; }
public virtual Role Role { get; set;}
}
public class Role
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int RoleId { get; set; }
public string RoleName { get; set; }
}
这是一个正确的实现吗?具体来说,我想知道如果我遗漏会发生什么
public int? RoleId { get; set; }
从人表?那会有什么不同吗?另外,如果我将以下内容添加到 Role 类中,会有什么不同:
public virtual List<Person> Persons {get; set;}
这如何改变事情?
谢谢