Asp.Net 5 7.0.0-rc1-final数据库优先问题

时间:2015-12-10 04:42:16

标签: asp.net-mvc entity-framework

启动并运行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是否首先删除它们的创建......

非常感谢任何指示或见解。

托德

1 个答案:

答案 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);
        }
    }