我在MVC 5项目中使用VS 2015和最新版本的ASP.NET Identity 2.2.1。
我有这个简单的模型:
public class Student
{
public int ID { get; set; }
public string Name { get; set; }
public ApplicationUser SomeUser { get; set; }
}
基本上,与ApplicationUser
的一对一关系。通常的背景;
public class Db : DbContext
{
public DbSet<Student> Students { get; set; }
}
我现在为这个背景去做Enable-Migrations
。一切正常。然后我去做Add-Migration SomeInitialMigration
并获得以下内容:
WebApplication18.Models.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined. Define the key for this EntityType.
WebApplication18.Models.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.
如果我第一次启动应用程序(并且创建了数据库表),则在键入Enable-Migrations
时会出现此错误。
我一直在阅读如何解决此问题,实施this SO answer solution,但是,现在不仅没有解决问题,而且当我为新用户点击'注册'或'登录'时,我明白了:
ApplicationUser_Logins_Target: : Multiplicity is not valid in Role 'ApplicationUser_Logins_Target' in relationship 'ApplicationUser_Logins'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'.
我也尝试按照this SO snswer的建议在base.OnModelCreating(modelBuilder);
中添加ApplicationDbContext
,但也没有发生任何事情。
我不知道该怎么做,几乎尝试了解决类似问题的所有SO解决方案。也许使用身份源代码改变了一些东西并且不再有效。
基本上,我想要完成的是:我想连接,所以ApplicationUser有很多学生。我已经尝试过测试这个,所以我添加了一个简单的关系Student
作为一个开始,没什么特别的。所以知道这一点,如果有任何替代方法值得通过一对多或一对一将注册用户连接到自定义模型,请告诉我。