C# ASP.NET MVC注册在电子邮件上创建声明

C# ASP.NET MVC注册在电子邮件上创建声明,c#,asp.net,asp.net-mvc,email,C#,Asp.net,Asp.net Mvc,Email,我是MVC的新手,我需要帮助在电子邮件中创建索赔。 我正在使用ASP.NET web应用程序MVC(Visual studio 2013/Framework 5.1)。 我的目标是扩展现有的ApplicationUser模型。我添加了[DataType(DataType.EmailAddress)] 公共字符串电子邮件{get;set;} 创建了一个相同的注册模型,更新了视图,这样我就可以输入我的电子邮件,但我不知道如何声明它,这样它在数据库中会是唯一的,并像显示用户名一样显示消息。 Asp.n

我是MVC的新手,我需要帮助在电子邮件中创建索赔。 我正在使用ASP.NET web应用程序MVC(Visual studio 2013/Framework 5.1)。 我的目标是扩展现有的ApplicationUser模型。我添加了[DataType(DataType.EmailAddress)] 公共字符串电子邮件{get;set;} 创建了一个相同的注册模型,更新了视图,这样我就可以输入我的电子邮件,但我不知道如何声明它,这样它在数据库中会是唯一的,并像显示用户名一样显示消息。

  • Asp.net Identity使用实体框架代码第一个模型框架,通过该框架,您可以通过实体框架迁移(如添加迁移初始化、更新数据库包)生成/构建自定义代码,从而将自定义代码添加到Asp.net Identity framework的实体框架默认数据模型中
在您的情况下,您希望使用电子邮件而不是用户名,这是非常合乎逻辑的

请通读一遍,尽管我给了你一些快速的步骤和一些代码供你参考

  • Enable Migrations–EnableAutomaticMigrations–在项目中添加Migrations文件夹以及Configuration.cs,后者为数据库上下文引导自动迁移

  • AddMigrationsInit—这为您提供了新的代码文件,用于自定义DbMigration类的表/属性,默认情况下,DbMigration类是部分的。它将为您提供两个覆盖Up()和Down()。对于电子邮件更改,以下是更改后的文件,如下图所示

    public override void Up()
    {
        AlterColumn("dbo.AspNetUsers", "UserName", c => c.String());
    }    
    public override void Down()
    {
        AlterColumn("dbo.AspNetUsers", "UserName", c => c.String());
    }
    
  • 完成此操作后,需要从library package manager启动更新数据库包

如果一切顺利,应用程序将可以使用具有更新的dbcontext/数据库属性的ApplicationUser