如何在EF Core代码优先方法中向aspnetroles表添加foregin密钥?

时间:2019-04-04 20:11:00

标签: c# asp.net entity-framework asp.net-core ef-code-first

我在带有身份验证的ASP.NET Core中创建了一个示例应用程序。 已创建很少的表格,并且应用程序运行良好。

现在,我需要创建新表“ Organizations”。该表应通过前向键以一对多关系与默认表“ AspNetRoles”连接。 每个角色可能有许多关联的组织。 问题是,我在应用程序中找不到这些默认表,并且不知道如何使用代码优先方法创建外键。 我尝试过这样的事情:

public class Organization
{
   public int OrganizationId {get; set;}

   [ForeginKey="AspNetRoles"]
   public int RoleId {get; set;}

}

帮助。

2 个答案:

答案 0 :(得分:1)

最后,我了解了如何实现这一目标。

public virtual string RoleId { get; set; }

[ForeignKey("RoleId")]
public virtual IdentityRole Roles { get;set; }

AspNetRoles被称为IdentityRole。

答案 1 :(得分:1)

当您具有相关实体的导航属性时,只需将与导航属性相同的相关密钥命名为Id或ID,EF就会自动将其识别为相关实体的外键(例如Role-RoleId)。

{key:privateKey, passphrase: 'im_passphrase'}

您可以了解有关naming conventions in EF Code First here

的更多信息

此外,这里还有一个不错的tutorial on complex data models