无法使用 PostgreSQL 配置 AspNet.Identity

use*_*296 4 .net c# postgresql entity-framework asp.net-identity

我有一个使用 SQL Server 设置的 Web 项目,现在必须迁移到 PostgreSQL。我使用 Entity Framework 6.0 版和最新版本的 Microsoft.AspNet.Identity 来管理用户凭据。我正在使用 VS2015 和 .NET Framework 452。

除了 AspNet.Identity 之外,该项目在 PostgreSQL 服务器上运行良好。当我尝试注册新用户或进行登录时,我收到此问题中描述的相同错误消息。相同的错误,相同的行,但问题已有 2 年的历史,给出的解决方案对我不起作用(我曾多次尝试 Add-Migration 和 Update-Database)。

其他一切作品,我已经检查过我的PostgreSQL数据库不包含与AspNet.Identity任何表的项目是使用SQL Server时,即使他们自动创建。其他与模型相关的表存在并且正在工作。

谢谢你。

use*_*296 5

我无法让 Microsoft 的 AspNet.Identity 与 postgresql 一起使用,它似乎被设计为与 SQL Server 一起使用,并且无论您做什么都不承认存在不同的数据上下文配置。

我现在在外部库的帮助下可以完成所有工作,因此我将提供我的问题的答案,以防其他人遇到此问题。

我遵循了以下项目中的说明(归功于 vincechan):

第2步有点问题。将项目导入我的解决方案后,我必须解决其中的参考问题。在包管理器控制台中,您可以安装丢失的包和/或更新过时的包。我的最终配置需要使用:

  • 我的主项目上的Npgsql 3.2.2(使用EntityFramework6.Npgsql
  • 下载项目上的Npgsql 2.2.7(使用Npgsql.EntityFramework

一切准备就绪后,添加新的迁移 ( Add-Migration <migration-name) 并更新数据库 ( Update-Database)。

现在执行创建身份相关表的 SQL 脚本,它们不会像 SQL Server 那样自动创建。该脚本包含在项目(文件PostgreSQLIdentity.sql)中。

现在一切都应该工作了。请原谅这个答案的格式不佳。