Итак, я пытаюсь создать универсальный метод выбора по идентификатору для базового класса репозитория. Чтобы добиться этого, я использую EF4 с POCO. Я создал интерфейс с геттером Id и успешно изменил шаблон T4, чтобы иметь общее свойство Id во всех сущностях, которые возвращают PK.
Проблема возникает, когда я использую запрос. Я реализую это так:
public virtual T GetByID(int id)
{
return Database.ObjectSet<T>().SingleOrDefault(entity => entity.Id == id);
}
И хотя для всех сущностей, возвращаемых ObjectSet, установлено свойство Id с их текущим значением первичного ключа, я получаю странную ошибку:
Указанный тип члена 'Id' не является
поддерживается в LINQ to Entities. Только
инициализаторы, члены сущности и
свойства навигации объекта
поддерживается.
Я что-то упустил?