启动并运行asp.net 5 beta 5应用程序。
尝试迁移到7.0.0-rc1-final。
为了创建一个简单的测试环境,我创建了一个新的ASP.NET Web应用程序:
VS2015
Version 14.0.23107.0 D14REL
Microsoft .NET Framework
Version 4.6.00079
我运行,注册和登录。一切正常。
然后测试数据库的第一原则:
使用用于beta 5应用程序的数据库副本,我运行:
dnx ef dbcontext scaffold -c“ApplicationDbContext”-o“Models” “服务器= \ SS2014;数据库= TSICV5; Trusted_Connection = TRUE;” EntityFramework.MicrosoftSqlServer
模型文件夹填写,应用程序编译正常。
运行正常,直到登录失败:
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false);
使用:
ArgumentNullException: Value cannot be null.
Parameter name: entityType
Microsoft.Data.Entity.Utilities.Check.NotNull[T](T value, String parameterName)
已经研究过,但没有运气。我不熟悉EF7迁移,并且可以在正确的方向上使用微调。
我担心我的数据库中的身份表与假设的不同(但仔细检查createidentitytables migration.cs显示要点是正确的,我唯一看到的不同是密钥的命名和没有几个索引)
我也很好奇snapshotfile.cs及其目的以及这是否是一个领先者。该文件似乎在数据库中创建“AspNet”表的“Identity”等价物,我想知道这是否是问题。不确定这些类的存储位置(元数据?),以及使用db是否首先删除它们的创建......
非常感谢任何指示或见解。
托德
答案 0 :(得分:0)
您可以检查ApplicationRole并将其添加到IdentityDbContext泛型参数,如下例所示。
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddIdentity<ApplicationUser, ApplicationRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();
}
public class ApplicationUser : IdentityUser
{
}
public class ApplicationRole: IdentityRole
{
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, string>
{
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
}
}