使用物體框架查詢 MySQL 資料庫,我的一個表給出了錯誤Unable to cast object of type 'System.DBNull' to type 'System.String'.我知道如果我能找出哪個列給我錯誤我可以修復它,但我似乎找不到任何方法讓 EF 到給我列名。我檢查了代碼中的所有列,沒有發現任何問題;資料庫中的資料在必填欄位中沒有任何空白;我想出了如何Trace在我的 appsettings.json 中設定日志記錄,但除了向我展示它發送到資料庫的查詢之外,我沒有看到記錄的資訊有任何變化:它仍然只是說Unable to cast object of 'System.DBNull' to type 'System.String'.
有什么辦法可以讓 EF 告訴我它在哪個列上有問題?我能想到的唯一下一步是關閉 Just My Code 并希望深入了解源代碼不會太混亂。
uj5u.com熱心網友回復:
你應該看看這個地方:https : //docs.microsoft.com/en-us/ef/core/logging-events-diagnostics/
特別是我認為你會發現這有點有用:https : //docs.microsoft.com/en-us/ef/core/logging-events-diagnostics/simple-logging#detailed-query-exceptions
嘗試打開詳細查詢例外日志以獲取更多詳細資訊
uj5u.com熱心網友回復:
在修復了啟用可為空參考型別檢查時出現的所有可為空問題后,我打算嘗試 T. Nielsen 的建議;但這意外地導致了另一種方法來查找哪一列沒有按照我認為的方式設定:我在只包含所需欄位的類上設定了一個建構式,編譯器告訴我Non-nullable property 'MyProblemColumn' must contain a non-null value when exiting constructor. Consider declaring the property as nullable.這正是我的原因試圖找到它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/364667.html
