我正在编写C#/ ASP.NET MVC5 Web应用程序,当我尝试进行新的迁移时,我遇到了以下错误
ToTheMoon.DAL.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined. Define the key for this EntityType.
ToTheMoon.DAL.IdentityUserRole: : EntityType 'IdentityUserRole' has no key defined. Define the key for this EntityType.
IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' is based on type 'IdentityUserLogin' that has no keys defined.
IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' is based on type 'IdentityUserRole' that has no keys defined.
我在我的一个模型中包含了ApplicationUser
类型的属性(?)。我相信这就是造成它的原因:
public ApplicationUser Requester { get; set; }
我很清楚这一事实 - 一般来说 - 我应该用[Key]
注释明确标记某个键,但我不相信这适用,因为错误消息描述的是类的一部分MVC5的'电池包含'登录系统。
我已经看到一些关于这是由于错误地覆盖一个方法(不记得它现在是什么)引起的,但我不这样做,所以我在网上找到的所有其他问题对我来说都没用
感激不尽。
编辑:这是我的背景,它非常裸露。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext() : base("DefaultConnection") { }
}
答案 0 :(得分:0)
问题中的评论:
添加ApplicationUser Requester属性的实体似乎在不同的上下文中定义。因为它在不同的上下文中,所以上下文对所有Identity实体的配置一无所知,因为它是由IdentityDbContext.OnModelCreating方法设置的。