我想使用泛型將記錄加載到我的dbcontext緩存中。我正在使用下面的代碼。C#實體框架5.0通用LINQ
_Context.Set<T>().Where(R => (int)R.GetType().GetProperty("Id").GetValue(R) == id).Load();
此代碼拋出下面的錯誤,我似乎無法弄清楚如何繞過它。
System.NotSupportedException:LINQ to Entities不能識別方法'System.Object GetValue(System.Object)'方法,並且此方法無法轉換爲存儲表達式。
是我在做什麼可能或有另一種方式。
如果您有基本實體類型並添加特徵'where T:BaseEntity',這可能會起作用。那麼你可以使用'R.ID'。 –
Unforuntaley我需要使用其中T:類來訪問dbset一般 –
我也發現,我可以使用下面的代碼,它似乎將記錄添加到本地緩存,不知道這是做正確的方式。 _Context.Set().Find(id); –