Я пытаюсь использовать generics для загрузки записи в свой кеш dbcontext. Я использую следующий код.C# Entity Framework 5.0 Generic 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); –