如何使用 Asp.net Identity with DataBase 优先方法

how to Use Asp.net Identity with DataBase first approach

您好,我正在尝试使用 .net 4.5 框架创建 Asp.net webforms 应用程序。 我有现有的数据库,我需要首先使用数据库,同时我需要使用 ASP.identity。我尝试在我的数据库中重新创建默认情况下使用 asp.identity 生成的表,并生成 .edmx 文件并更改

中的字符串连接名称
public ApplicationDbContext()
            : base("GoalsDBEntities", throwIfV1Schema: false)
        {
        }

但不幸的是我收到以下错误

An exception of type 'System.InvalidOperationException' occurred in mscorlib.dll but was not handled in user code

Additional information: The type of ApplicationUser entity not part of the model for the current context.

要开始使用 ASP.NET Identity,我建议执行以下步骤:

  1. 从现有数据库生成代码模型
  2. 在您想要用于身份实施的表上,继承自适当的 类
  3. 创建迁移并将更改应用到您的数据库。

要使用您从数据库生成的文件启用身份:

  • IdentityDbContext 而不是 DbContext 继承生成的上下文。
  • IdentityUser
  • 继承你的用户模型

根据您的情况,您需要从其中一个身份继承更多您自己的模型 类 或者您必须添加(使用代码优先迁移)。有关 IdentityDbContext 的更多信息,请参阅 https://msdn.microsoft.com/en-us/library/dn613255%28v=vs.108%29.aspx

请注意,在使用代码优先迁移或从数据库本身更新数据库时,此方法需要进行必要的维护。这并非完全不可能,但您可能必须多次重新生成代码优先模型,或者您可以关闭模​​型兼容性检查并手动将更新应用到您的模型。 (参见:How can I disable model compatibility checking in Entity Framework 4.3?


有关如何从现有数据库生成代码优先模型的信息,请参阅 https://msdn.microsoft.com/en-us/library/jj200620.aspx

有关在您的项目上启用迁移的信息,请参阅 https://msdn.microsoft.com/en-us/data/jj591621.aspx