簡體   English   中英

無法使用PostgreSQL配置AspNet.Identity

[英]Unable to configure AspNet.Identity using PostgreSQL

我有一個使用SQL Server設置的Web項目,現在必須遷移到PostgreSQL。 我正在使用Entity Framework 6.0版和最新版本的Microsoft.AspNet.Identity來管理用戶憑據。 我正在使用VS2015和.NET Framework 452。

除了AspNet.Identity之外,該項目適用於PostgreSQL服務器。 當我嘗試注冊新用戶或登錄時,我收到此問題中描述的相同錯誤消息。 相同的錯誤,相同的行,但問題是2年,給出的解決方案對我不起作用(我多次嘗試添加遷移和更新數據庫)。

其他一切作品,我已經檢查過我的PostgreSQL數據庫包含該項目是使用SQL Server時,即使他們自動創建相關AspNet.Identity任何表。 其他與模型相關的表存在且有效。

謝謝。

我無法使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 )。

現在一切都應該有效。 原諒這個答案的格式不佳。

如果PostgreSQL數據庫不包含任何與ASP.NET標識相關的表,則很可能意味着未對ASP.NET標識上下文類啟用遷移。 在我的情況下,我正在使用VS腳手架,我的意思是這個類:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>

因此,第一步是在不帶參數的Package Manager控制台中運行Enable-Migrations 如果你有一個干凈的數據庫,它將完全按照前面提到SO主題的工作方式工作。 因此,如果您想要一個簡單的解決方案,那么完全銷毀您的PostgreSQL數據庫,再次創建它並簡單地運行Enable-Migrations

如果您不想銷毀PostgreSQL數據庫或/並且在此之前丟失任何遷移,則僅在單獨的目錄中 為ASP.NET標識上下文啟用遷移。 已經有一個SO答案解釋了如何做到這一點。

ApplicationDbContext某個目錄(例如MigrationsIdentity )中啟用遷移:

Enable-Migrations -ContextTypeName MyProject.Models.ApplicationDbContext -MigrationsDirectory MigrationsIdentity

為此上下文添加初始遷移:

Add-Migration IdentityInitial -ConfigurationTypeName MyProject.MigrationsIdentity.Configuration

應用此遷移:

Update-Database -ConfigurationTypeName MyProject.MigrationsIdentity.Configuration

完成這些步驟后,Code First會自動生成PostgreSQL數據庫中的ASP.NET標識表,您無需使用SQL腳本手動運行任何內容。

在評論中你提到過你有不同的背景。 然而,存在多種上下文方法的缺點: 您不會輕易地將它們一起使用 此外,每次遷移數據庫時都必須使用-ConfigurationTypeName標志明確指定上下文。 我會使用已經討論過的單一上下文,但這取決於您的任務要求。

版本:

  • EntityFramework 6

  • Microsoft.AspNet.Identity.Core 2.1

  • Npgsql 3.1.10.0

  • EntityFramework6.Npgsql 3.1.1.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM