Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.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
C# MVC项目登录需要哪些表?_C#_Asp.net Mvc_Entity Framework_Azure - Fatal编程技术网

C# MVC项目登录需要哪些表?

C# MVC项目登录需要哪些表?,c#,asp.net-mvc,entity-framework,azure,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 =

我开始学习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);
}
我得到了一个异常,据我所知,这是因为数据库中没有对应于模型的表

自创建数据库以来,支持“ApplicationDbContext”上下文的模型已更改

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

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

我现在有点困惑,经过几个小时的研究,我意识到我需要一些建议。我已经使用EF进行了工作,因此我习惯于查找对应于DB模式的模型,但在本例中,我找不到任何具有类似于用户名和密码等属性的类。

首先,您确实希望先使用代码,即使您先对现有数据库执行代码(是的,我知道。这看起来很矛盾,但完全可以接受)。模型优先和数据库优先被弃用


第二,如果你的问题是你有一个现有的数据库,那么你最好的办法是用单独的Auth项目创建一个单独的临时MVC 5,让它创建它的数据库,然后将表复制到你现有的数据库中。

我对MVC还是很陌生,但我已经玩MVC5一段时间了。我发现默认情况下,它将首先执行代码。我没有尝试将其切换到其他内容,但当您第一次运行该程序时,它会为您构建数据库。对其运行方式的任何更改都需要您更新数据库和/或启用迁移。默认情况下,它使用了许多字段,但我建议您运行它所以它可以为你建立数据库

对于您关于在何处创建表的问题,大部分是在其用于身份验证的NuGet包中幕后完成的。可以这样想,如果您在代码中包含
System.Linq;
要使用一些Linq,它会为您处理其余的问题。值得注意的是,如果您想稍微更改表,请转到您的IdentityModels.cs文件,并向下滚动到
OnModelCreation(DbModelBuilder modelBuilder)
函数。在该函数中,它修改并向数据库中添加表或列。每次更改时,都需要更新数据库(Package Manager Console>update database)

要考虑的另一件事,如果您不希望它这样做,您将希望创建一个MVC项目,该项目不包括身份验证,从头开始执行该部分。 如果这些都没用,你想用它做什么

另外,为了给您提供一些可供查看的资源,microsoftvirtualacademy.com上有一些超过MVC5的视频,但如果您刚刚进入MVC,则值得一看


编辑:我还应该指出,MVC将自动为您处理生成的数据库中的所有内容。有一些方法可以修改它的工作方式,但总的来说,它所做的调用都是自动完成的。您可以在函数和SQL查询中编写代码供您使用的任何额外内容都是独立的,并让MVC处理身份验证数据库

看看这个问题。我想它有你需要的:好吧,首先是代码。我试图避免它,因为我不知道如何解决我的情况,因为我认为这样更容易。在这种情况下,正如你推荐的CF,我的问题是-如何解决我的问题。当我将香草项目上传到Azure时,我无法注册任何用户(虽然显示了错误,但没有详细信息),而它在本地工作(我可以在那里调试)。不确定如何继续…提示?嗯,这是一个完全不同的问题。如果开发和生产(Azure)中都有表如果只在Azure上失败,那么还有其他一些问题在起作用。我建议您专门针对这个问题提出一个新问题,并尽可能多地收集有关该问题的信息。如果您从错误消息中没有得到太多信息,请添加一些日志记录。我会这样做的,谢谢。不过,您的观点是基于我拥有的前提这些表格在开发和生产中都有,我不确定我是否有,因为我不知道它们叫什么(这正是我最初的问题,尽管最初不是这样想的)。您是否仍然认为我应该打开一个新问题,或者它毕竟与原来的问题有关?很抱歉误解。身份表都以“AspNet”开头,就像“AspNetUsers”一样.首先,检查它们是否确实存在于生产中,但是,是的,然后打开一个新问题,如果它们存在,因为还有其他事情在发生。它们没有。我有一个我无法摆脱的问题。一个家伙试图帮我几个小时,呵呵。真的很奇怪。看看它-也许你会看到一些东西。很棒的信息:+1。问题是没有当我启动vanilla项目时,它在本地IIS上工作,而在发布后,页面将显示,但例如注册不工作。错误没有显式显示异常消息-它只是说“对不起,发生了错误”。我遵循了一些关于如何设置它的指南,但可能是旧的或什么的。我将进行一次新的尝试,但似乎我遗漏了一个小但关键的细节,似乎要重做所有事情而不是仅仅修复它太费劲了。此外,如果我知道为什么它不起作用,我肯定会获得更多的知识。这是我唯一能想到的事情,看看再次看到错误。它需要一个用户和密码。您说它在通话中遇到异常。因此,用户找不到用户名/电子邮件,或者型号页面上的密码已更改。请再次检查型号(如果您没有报废
var result = await UserManager.CreateAsync(user, model.Password);