如何从默认的asp.net mvc应用程序中删除数据库列?

时间:2016-07-25 17:54:04

标签: c# asp.net asp.net-mvc-4

我正在尝试学习asp.net,因此我想使用我们在visual studio中获得的默认项目来创建项目> asp.net项目> mvc项目。我将自定义它,并尝试学习asp.net。

我运行它并注册了一个用户,然后我就可以打开数据库资源管理器了。这里有很多列,比如“emailConfirmed”,“TwoFactorAuth”等,我不需要,所以我想删除它们。我从数据库(localDB)中删除了它们,但是我一直收到无效列名“emailConfirmed”等错误。所以我如何确保它们完全脱离了我的项目。我相信他们在某处有一些C#代码,但我不知道在哪个文件中。

我也有一个非常重要的问题,可能是一个非常愚蠢的问题。该默认项目中的代码在哪里告诉我每当我提交表单时,我的数据应该进入相应的数据库列?基本上我的意思是代码说明SqlConnection conn = new SqlConnection(connectionString)等等的代码。

1 个答案:

答案 0 :(得分:0)

离开专栏。如果您不想使用它们,请不要使用它们。没有理由删除它们。 .Net Identity负责数据库调用。您要查看数据库调用和删除列的唯一方法是实现自己的UserStore或创建自己的身份验证系统。

第二个问题:

您应该将新字段添加到/Models/IdentityModels.cs,如下所示:

public class ApplicationUser : IdentityUser
{
    public string Gender { get; set; }

    public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
    {
        var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
        return userIdentity;
    }
}

从那里,您需要创建一个新的迁移以将更改推送到数据库。你真的不应该直接修改数据库模式(列和表),你应该从Code First那里做到这一点