Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Entity framework ASP.NET标识表生成和项目解耦_Entity Framework_Migration_Asp.net Mvc 5_Asp.net Identity - Fatal编程技术网

Entity framework ASP.NET标识表生成和项目解耦

Entity framework ASP.NET标识表生成和项目解耦,entity-framework,migration,asp.net-mvc-5,asp.net-identity,Entity Framework,Migration,Asp.net Mvc 5,Asp.net Identity,ASP.NET Identity OWIN with Entity Framework将以下表格添加到数据库中: ASPNetUsers ASPNeRoles ASPNeTokens ASPNetUserClaims ASPNetUserLogins ASPNetUserManagements ASPNetUserRoles ASPNetUserSecrets 有人能给我解释一下这些名字是从哪里来的吗?我仔细查看了我的解决方案和项目文件,没有看到任何对它们的引用。这些名称是可定制的吗(我的意思

ASP.NET Identity OWIN with Entity Framework将以下表格添加到数据库中:

ASPNetUsers
ASPNeRoles
ASPNeTokens
ASPNetUserClaims
ASPNetUserLogins
ASPNetUserManagements
ASPNetUserRoles
ASPNetUserSecrets
  • 有人能给我解释一下这些名字是从哪里来的吗?我仔细查看了我的解决方案和项目文件,没有看到任何对它们的引用。这些名称是可定制的吗(我的意思是当它们生成时,而不是在它们存在于数据库中之后)

  • 我尝试了一个实验,并在我的ASP.NETMVC5解决方案中添加了一个新项目。然后,我使用NuGet安装了Microsoft ASP.NET Identity Owin。然后,我将EntityFramework6添加到该项目中,并创建了一个从DbContext继承的datacontext类。此时,我从PackageManager控制台运行了“EnableMigrations”命令。创建了一个Migrations文件夹、一个迁移类以及一个Configuration.cs类。到目前为止,一切顺利。但是,当我运行“addmigrationinitial”命令时,上面提到的ASP.NET标识表都没有生成

    然而,当我在我的MVC项目中遵循相同的步骤时 添加迁移命令不会生成上述表。在我的MVC中 项目,在我的应用程序开始文件夹中有一个startup.auth.cs类, 然而。这似乎是关键,但我不确定,因为 有些事情正在“神奇地自动”发生,我显然不知道 明白。startup.auth.cs文件如下所示:


  • 如果我想从MVC项目以外的项目迁移ASP.NET标识表,我该怎么做?

    注意:这些表名看起来来自Identity 1.0的预发布版本,但简单的回答是,它们来自IdentityDbContext.OnModelCreating,它指定了各种实体的表名

    您的IdentityDbContext通常会传递到UserStore。无论您在何处创建UserManager,都可能在何处同时构建UserStore和IdentityDbContext。请注意,UserStore的默认构造函数创建了一个新的IdentityDbContext,它使用“DefaultConnection”字符串,因此这可能是您没有看到的神奇步骤

    IdentityDbContext

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
    

    我不同意:询问如何更改表名与询问这些名称的来源不同。另外,我的问题是关于解耦的问题,这与前面提到的问题不同。答案可能很微妙,但答案是您覆盖了
    System.Data.Entity.DbModelBuilder
    entities。我认为可以推断默认的表名驻留在那里。你可以使用反编译器来确认我的问题是“它们在哪里”——而不是“我如何使用反编译器对Microsoft的代码进行反向工程并找出发生了什么”。因此,我不认为这是对我的问题的回答。
        protected override void OnModelCreating(DbModelBuilder modelBuilder)