【发布时间】:2018-09-05 13:34:24
【问题描述】:
我想在我的数据库中创建一个类似于AspNetUserRoles 表的表,其中包含这些列:
User_id
Role_id
这些列与用户和角色表相关
如何使用我的模型创建一个?我试过这样:
public class AspNetUserRolesExtendedDetails
{
[Key]
[Column(Order = 0)]
public ApplicationUser UserId { get; set; }
[Key]
[Column(Order = 1)]
public AspNetRolesExtendedDetails RoleId { get; set; }
}
但是当我尝试运行迁移时,出现了这个错误:
AspNetUserRolesExtendedDetails: : EntityType 'AspNetUserRolesExtendedDetails' 没有定义键。定义此 EntityType 的键。
AspNetUserRolesExtendedDetails: EntityType: EntitySet 'AspNetUserRolesExtendedDetails' 基于没有定义键的类型'AspNetUserRolesExtendedDetails'。
如何创建这样的表,它的正确名称是什么?
编辑:
当我像这样更新我的模型时:
public class AspNetUserRolesExtendedDetails
{
[Key]
[Column(Order = 0)]
[ForeignKey("AspNetUsers")]
public ApplicationUser UserId { get; set; }
[Key]
[Column(Order = 1)]
[ForeignKey("AspNetRolesExtendedDetails")]
public AspNetRolesExtendedDetails RoleId { get; set; }
}
我收到此错误:
类型“App.Models.AspNetUserRolesExtendedDetails”的属性“RoleId”上的 ForeignKeyAttribute 无效。在依赖类型“App.Models.AspNetUserRolesExtendedDetails”上找不到外键名称“AspNetRolesExtendedDetails”。 Name 值应该是逗号分隔的外键属性名称列表。
更新:
[Key]
[Column(Order = 0)]
[ForeignKey("Id")]
public String UserId { get; set; }
public virtual ApplicationUser ApplicationUser { get; set; }
[Key]
[Column(Order = 1)]
[ForeignKey("Id")]
public String RoleId { get; set; }
public virtual AspNetRolesExtendedDetails AspNetRolesExtendedDetails { get; set; }
这是我现在拥有的,但我收到了这个错误:
类型“App.AspNetUserRolesExtendedDetails”的属性“UserId”上的 ForeignKeyAttribute 无效。在依赖类型“App.Models.AspNetUserRolesExtendedDetails”上找不到导航属性“Id”。 Name 值应该是有效的导航属性名称。
【问题讨论】:
-
我使用字符串作为 Ids
标签: c# asp.net asp.net-mvc entity-framework-migrations