实体框架4工作单元/存储库WITHOUT.Query()Lambda



我们已经看到了一些实现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查询表达式语法?

Richard

是,但必须公开IQueryable<T>:

IQueryable<T> Query();

之后,您可以使用以下代码:

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

昨天讨论了方法之间的差异。此外,存储库和工作单元的整个概念也被讨论了很多次,包括为什么要使用它们以及您可能会遇到什么问题。

相关内容

  • 没有找到相关文章

最新更新