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); }
