Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc RoleManager、UserManager datetime2尝试为数据库种子时出现异常_Asp.net Mvc_Entity Framework_Datetime_Sql Server 2012_Asp.net Identity 2 - Fatal编程技术网

Asp.net mvc RoleManager、UserManager datetime2尝试为数据库种子时出现异常

Asp.net mvc RoleManager、UserManager datetime2尝试为数据库种子时出现异常,asp.net-mvc,entity-framework,datetime,sql-server-2012,asp.net-identity-2,Asp.net Mvc,Entity Framework,Datetime,Sql Server 2012,Asp.net Identity 2,我得到了著名的 将datetime2数据类型转换为datetime数据类型 导致值超出范围 manager.Createrole异常;在尝试为数据库设定种子时。无论我使用Db初始值设定项类还是迁移来为我的Db设定种子,都会发生这种情况 if (!context.Roles.Any(r => r.Name == "AppAdmin")) { using (var store = new RoleStore<IdentityRole>(con

我得到了著名的

将datetime2数据类型转换为datetime数据类型 导致值超出范围

manager.Createrole异常;在尝试为数据库设定种子时。无论我使用Db初始值设定项类还是迁移来为我的Db设定种子,都会发生这种情况

if (!context.Roles.Any(r => r.Name == "AppAdmin"))
        {
            using (var store = new RoleStore<IdentityRole>(context))
            using (var manager = new RoleManager<IdentityRole>(store))
            {
                var role = new IdentityRole { Name = "AppAdmin" };

                manager.Create(role);
            }
        }
        if (!context.Users.Any(u => u.UserName == "SampleUser"))
        {
            using( var store = new UserStore<ApplicationUser>(context) )
            using (var manager = new UserManager<ApplicationUser>(store))
            {
                var user = new ApplicationUser { UserName = "SampleUser", PhoneNumber = "0797697898", Email = "adr@gmail.com" };

                manager.Create(user, "ChangeItAsap!");
                manager.AddToRole(user.Id, "AppAdmin");
            }
我知道问题是SQL Server datetime不能包含defaultDateTime值,因为它只能保存1753/1/1之后的日期,但我无法控制Identity Framework内部,因此我无法在有问题的属性上添加其他属性以将其转换为datetime2。另外,我可能不想这样做,我只想在数据库中创建一些初始用户和角色

在检查Db模式后,我看到在AspNetUsers中使用的唯一日期是LockoutEndDateUtc,但正如我前面提到的,在我尝试添加任何用户之前,就会发生异常

有什么建议吗

SQL Server 2012,asp-mvc-5-2-2,entity-framework-6-1-3,identity framework 2-1,Visual Studio 2013

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Properties<DateTime>().Configure(c => c.HasColumnType("datetime2"));
        base.OnModelCreating(modelBuilder);
    }
有帮助,但这不是我想要的解决方案