2016-07-25 66 views
-2

我想学习asp.net,因此我想创建一个项目,使用默认项目,我们可以在visual studio> asp.net project> mvc项目中获得。我会定制它,并尝试学习asp.net。如何从默认的asp.net mvc应用程序中删除数据库列?

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

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

+0

只需离开列即可。如果你不想使用它们,不要。没有理由删除它们。 .Net Identity负责数据库调用。要看到数据库调用并摆脱列的唯一方法是实现自己的UserStore或创建自己的认证系统 – Eonasdan

+0

哦,我明白了。谢谢。我还有另一个相关的问题。假设我在默认表中添加了一个名为Gender的列,并添加了必要的文本框供用户在注册页面上输入该信息。现在,我在哪里更改说这个信息应该回到这个数据库的代码?因为现在当我尝试注册时,我的数据库只会提取电子邮件,密码等默认值。 –

+0

请参阅下面的答案。如果它对您有帮助,请立即加入并接受它。 – Eonasdan

回答

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执行此操作。

相关问题