Entity Framework 4 Единица работы / Репозиторий БЕЗ .Query () Лямбда - PullRequest
1 голос
/ 21 июня 2011

Мы видели несколько очень полезных методов реализации шаблона репозитория EF4 и единицы работы ( Ссылка 1 , Ссылка 2 )

Все примеры, которые я вижуиспользовать методы, требующие использования синтаксиса выражения LINQ, например:

IEnumerable<T> Query(Expression<Func<T, bool>> filter) 

var employees = employeeRepository.Query(emp => emp.Username == userName); 

Но я хочу использовать синтаксис выражения запроса LINQ, например:

from emp in context.Employees select emp where emp.Username == userName;

Есть ли способ воспользоваться преимуществамихранилища и UoW, хотя можно использовать синтаксис LINQ Query Expression в моих методах хранилища?

Ричард

1 Ответ

2 голосов
/ 21 июня 2011

Да, но вы должны выставить IQueryable<T>:

IQueryable<T> Query();

После этого вы можете использовать код как:

var query = from emp in EmployeeRepository.Query() 
            where emp.Username == userName
            select emp;

Разница между подходами обсуждалась вчера. Также много раз обсуждалась вся концепция хранилища и единицы работы, включая , зачем их использовать и какие проблемы можно ожидать .

...