Вы не можете запросить с помощью LTS (Linq to SQL) чего-то построенного «поверх» уровня LTS.
Причина в том, что слой сущностей LTS является отображением содержимого вашей базы данных, а выполняемый вами запрос «просто» переводится в SQL.
Я лично использую другой подход, чтобы сохранить независимость между моими слоями ...
Я создаю интерфейсов , соответствующих моим объектам LTS, и использую метод Cast <> () , чтобы мой репозиторий возвращал интерфейс вместо конкретной реализации.
Работает отлично.
Вам необходимо расширить базовую сущность (без pb, поскольку это частичный класс):
partial class Employee : IEmployee
И вам нужно это свойство в вашем хранилище:
public IQueryable<IEmployee> Query
{
get
{
return this._context.Employees.Cast<IEmployee>();
}
}
Исходя из этого, вы можете написать общий репозиторий, но это другая история (более сложная)