c# - 普通 MVC 项目登录需要哪些表?

标签 c# asp.net-mvc entity-framework azure

我开始学习 MVC,并且发现默认的普通 MVC 项目的以下部分管理对数据库注册的实际调用。

public async Task<ActionResult> Register(RegisterViewModel model)
{
  if (ModelState.IsValid)
  {
    var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
    var result = await UserManager.CreateAsync(user, model.Password);
    if (result.Succeeded)
    {
      await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);
      return RedirectToAction("Index", "Home");
    }
    AddErrors(result);
  }
  return View(model);
}

但是,当我到达这一行时:

var result = await UserManager.CreateAsync(user, model.Password);

我遇到了异常,据我所知,这是因为数据库中没有与模型对应的表。

The model backing the 'ApplicationDbContext' context has changed since the database was created.

我不想使用“代码优先”。我可以手动创建表并仍然能够使用 UserManager 吗?表/列将被称为什么?

相反,在我的项目中,我可以在哪里控制正在读取的现有数据库中的哪些表/列?

我现在有点困惑,经过几个小时的研究,我意识到我需要一些指导。我已经使用过 EF,因此我习惯于查找与数据库架构相对应的模型,但在这种情况下,我找不到任何具有类似于 Username 属性的类>密码等...

最佳答案

首先,您确实想要使用Code First,即使您正在使用现有数据库执行Code First(是的,我知道。这看起来很矛盾,但完全可以接受)。模型优先和数据库优先已弃用。

其次,如果您的问题是您有一个现有数据库,那么您最好的选择是创建一个带有个人身份验证项目的单独临时 MVC 5,让其创建其数据库,然后将表复制到您现有的数据库中。

关于c# - 普通 MVC 项目登录需要哪些表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32956982/

相关文章:

c# - 通用设计指南c#;发现我在方法之间不必要地传递对象

c# - 在 .NET FontDialog 中显示非默认字体

c# - EF6 - 在应用程序配置文件中找不到名为 'Data Source=...' 的连接字符串

entity-framework - 抛出异常后我可以继续使用 DbContext 吗?

c# - ASP.NET MVC 2 - 使用 UpdateModel 和 LINQ to Entities (.NET 3.5) 时无法更新 "The model of type ' XYZ'

c# - 是否有适用于 Salesforce REST Api 的 c# 包装器?

c# - 在 asp.net 页面中保护密码 View 状态

.net - NHibernate:MySql 方言是否足够成熟和稳定以用于大型 Web 应用程序?

c# - 如何从 asp.net MVC 4 中的按钮单击调用 Controller

c# - 更改 ASP.NET Identity 存储用户数据的数据库