繁体   English   中英

ASP.NET MVC标识表的创建

[英]ASP.NET MVC identification tables creation

因此,我有一个带有自定义本地数据库的项目(通过模型优先方法创建)。 我需要在此创建标识表(例如asp_usersasp_roles ,我不记得它们的确切调用方式了,但我希望您有主意)。 据我所知,应该在首次注册时创建它们,但是不会发生:

在此处输入图片说明

我在SQL Management Studio中也看不到这些表。 我的连接字符串(通过数据库自动创建):

<!--<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-WebApplication1-20170504122316.mdf;Initial Catalog=aspnet-WebApplication1-20170504122316;Integrated Security=True" providerName="System.Data.SqlClient" />-->

<add name="DefaultConnection" connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=VADIM-PC;initial catalog=PIT_3_Project_DB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

第一个连接字符串是真正的默认字符串,第二个是我的。

有趣的部分是-身份验证工作正常,我可以注册和登录,但看不到我的代码可以在默认本地数据库中使用的地方。

UPD:对不起,我没有更改此行:

    public ApplicationDbContext()
    : base("DBModelContainer", throwIfV1Schema: false)
    {
    }

我已将DBModelContainer更改为DefaultConnection ,现在遇到此错误(尝试注册时)

实体类型ApplicationUser不是当前上下文模型的一部分。

说明:执行当前Web请求期间发生未处理的异常。 请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。

您应该使用代码优先迁移来创建这些表。

第一步:取消注释第一个默认连接字符串,将其重命名为例如DefaultAuthConnection并像这样修改它(对于本地数据库)。

<add name="DefaultAuthConnection" connectionString="data source=.;initial catalog=PIT_3_Project_DB;persist security info=True;" providerName="System.Data.SqlClient" />

<add name="DefaultConnection" connectionString="metadata=res://*/DBModel.csdl|res://*/DBModel.ssdl|res://*/DBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=VADIM-PC;initial catalog=PIT_3_Project_DB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

第二步:打开IdentityModels.cs并按如下所示修改ApplicationDBContext

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("DefaultAuthConnection", throwIfV1Schema: false)
        {
        }
    }

第三步:打开Package Manager控制台 (“查看”->“其他Windows”->“ Package Manager控制台”)并编写以下步骤:

  1. Enable-Migrations -ContextTypeName WebApplication1.ApplicationDbContext
  2. 添加迁移初始化
  3. 更新数据库

从现在开始,您可以在本地数据库中看到身份验证表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM