Entity FreamWork 無法創建“System.Object”類型的常量值。此上下文僅支持基元類型或枚舉類型錯誤解決


Entity FreamWork 無法創建“System.Object”類型的常量值。此上下文僅支持基元類型或枚舉類型錯誤解決:

最近在開發中把我原來抄的架構里面的主鍵由固定的Guid改成了可以泛型指定的類型,結果,發現執行EF在查詢的時候,不能支持equal,只能用==,理由很簡單,因為equal是object的方法,雖然所有的類都是object的子類,但是ef不支持復雜類型的直接檢索,只能用簡單類型,比如常用的string,int,guid,這些,都可以做==,也可以用來檢索。但是比如Person對象,雖然可以做==,但不能用於EF的檢索。

最終解決方案,把firstOrDefault方法改成用find方法,EF提供的,就可以了。

 public T GetById(TKey id)
        {
            return dbContext.Set<T>().Find(id);
        }

 


免責聲明!

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



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