Pomelo.EntityFrameworkCore.MySql 報錯 Unable to cast object of type 'System.Guid' to type 'System.String'


先說下環境:

  連接的是舊數據庫而不是新生成的庫,所以有很多不能刪的舊數據,表主鍵是char(32),在使用Pomelo.EntityFrameworkCore.MySql跑起來后就報錯了。

解決方式:在數據庫連接串加上 oldguids=true

說下原因:Pomelo.EntityFrameworkCore.MySql  使用 MySqlConnector 作為mysql數據連接層。 當MySqlConnector 遇到類型為char(36)/char(32)

的字段時,會轉換成guid,轉換不成功時就失敗報錯了。解決方案就是在連接串上設置guid的處理方式,參考

MySQL .NET Connection String Options

GuidFormat 一節。 其實只要GuidFormat不是char32,36都能避免這個錯誤。

同時github上的問題:

Sequential GUIDs


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM