Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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 当我使用迁移更新数据库时,用户无法登录_Asp.net_Asp.net Mvc_Azure_Asp.net Mvc 5_Asp.net Identity - Fatal编程技术网

Asp.net 当我使用迁移更新数据库时,用户无法登录

Asp.net 当我使用迁移更新数据库时,用户无法登录,asp.net,asp.net-mvc,azure,asp.net-mvc-5,asp.net-identity,Asp.net,Asp.net Mvc,Azure,Asp.net Mvc 5,Asp.net Identity,我使用Azure DB在本地开发了一个ASP.NETMVC5项目。我的连接字符串指向我的Azure SQL数据库。发布后,该项目在本地和Azure上都能正常工作 我还使用ASP.Net标识。我可以毫无问题地注册和登录,但当我在定义新模型类后进行任何迁移后更新数据库时,我无法使用现有密码/电子邮件登录 我所做的唯一更改是: public async Task<ActionResult> Register(RegisterViewModel model) { if (ModelS

我使用Azure DB在本地开发了一个ASP.NETMVC5项目。我的连接字符串指向我的Azure SQL数据库。发布后,该项目在本地和Azure上都能正常工作

我还使用ASP.Net标识。我可以毫无问题地注册和登录,但当我在定义新模型类后进行任何迁移后更新数据库时,我无法使用现有密码/电子邮件登录

我所做的唯一更改是:

public async Task<ActionResult> Register(RegisterViewModel model)
{
    if (ModelState.IsValid)
    {
        var user = new ApplicationUser { 
            UserName = model.Email, 
            Email = model.Email, 
            FirstName = model.FirstName,
            LastName = model.LastName
        };
        //...
    }
}
我在Migrations文件夹中有Date_InitialCreate.cs,用于创建标识表。 我应该删除它吗

编辑-2: 1.我有三次迁移。如您所知,InitialCreate.cs是标准。 2.NameLastNametoUSERS.cs

public partial class NameLastNametoUSERS : DbMigration
{
    public override void Up()
    {
        AddColumn("dbo.AspNetUsers", "FirstName", c => c.String(nullable: false));
        AddColumn("dbo.AspNetUsers", "LastName", c => c.String(nullable: false));
    }

    public override void Down()
    {
        DropColumn("dbo.AspNetUsers", "LastName");
        DropColumn("dbo.AspNetUsers", "FirstName");
    }
}
邮政编码 公共覆盖无效 { 编码表 dbo.类别, c=>新的 { Id=c.Intnullable:false,identity:true, Name=c.Stringnullable:false,maxLength:128, CategoryPhoto=c.字符串, URLSlug=c.Stringnullable:false, } .PrimaryKeyt=>t.Id


`

您正在运行什么类型的迁移?您是否可能使用迁移初始值设定项删除并重新创建数据库?请发布您的EF Configuration.cs类。您是否在代码中的任何位置调用database.SetInitializer?您的问题听起来像是在每次迁移期间删除并重新创建数据库。不,我不调用“Database.SetInitializer”,而且当我检查数据库时,我可以看到现在无法登录的注册用户的所有记录。我想,密码哈希正在发生变化。这可能吗?好的-所以新用户以其电子邮件地址作为用户名注册。但旧用户注册时使用的不是电子邮件地址作为用户名用户名?您有多少次迁移?如果只有几次,也发布它们的代码。如果您使用名/姓为所有用户添加种子,这是否解决了问题?例如,您是否只是在读取时生成异常,因为nullable=false…但它们都为null。请检查您是否正在使用一个异常,它确切地告诉您发生了什么.
public partial class NameLastNametoUSERS : DbMigration
{
    public override void Up()
    {
        AddColumn("dbo.AspNetUsers", "FirstName", c => c.String(nullable: false));
        AddColumn("dbo.AspNetUsers", "LastName", c => c.String(nullable: false));
    }

    public override void Down()
    {
        DropColumn("dbo.AspNetUsers", "LastName");
        DropColumn("dbo.AspNetUsers", "FirstName");
    }
}
        CreateTable(
            "dbo.Posts",
            c => new
                {
                    Id = c.Int(nullable: false, identity: true),
                    Title = c.String(nullable: false, maxLength: 250),
                    PostContent = c.String(nullable: false),
                    ShortContent = c.String(),
                    FeaturedPhoto = c.String(),
                    URLSlug = c.String(nullable: false),
                    DateAdded = c.DateTime(nullable: false),
                    DatePublished = c.DateTime(),
                    Published = c.Boolean(nullable: false),
                    Category_Id = c.Int(),
                })
            .PrimaryKey(t => t.Id)
            .ForeignKey("dbo.Categories", t => t.Category_Id)
            .Index(t => t.Category_Id);

        CreateTable(
            "dbo.Images",
            c => new
                {
                    Id = c.Int(nullable: false, identity: true),
                    ImgName = c.String(nullable: false),
                    ImgSize = c.Int(nullable: false),
                    ImgFullPath = c.String(),
                })
            .PrimaryKey(t => t.Id);

    }

    public override void Down()
    {
        DropForeignKey("dbo.Posts", "Category_Id", "dbo.Categories");
        DropIndex("dbo.Posts", new[] { "Category_Id" });
        DropTable("dbo.Images");
        DropTable("dbo.Posts");
        DropTable("dbo.Categories");
    }