我看到了一些使用EF通用可靠性的例子。我对LINQ没有很好的把握,所以我无法理解如何使用这种方法。你能否引导我?这是我的代码。我不知道我将如何传递一个表达式。请高度appriciate如果你可以用例子来指导。如何使用EF库的find方法?
public IEnumerable<T> Query(Expression<Func<T, bool>> filter)
{
return objectSet.Where(filter);
}
感谢
我看到了一些使用EF通用可靠性的例子。我对LINQ没有很好的把握,所以我无法理解如何使用这种方法。你能否引导我?这是我的代码。我不知道我将如何传递一个表达式。请高度appriciate如果你可以用例子来指导。如何使用EF库的find方法?
public IEnumerable<T> Query(Expression<Func<T, bool>> filter)
{
return objectSet.Where(filter);
}
感谢
您可以以同样的方式使用此方法,在那里你会使用LINQ。
例如如果T是一个用户,一个Name属性,你可以做
Query(u=>u.Name == "Bob");
这种类型的表达式被称为lambda表达式。有关详细信息,你可以看看http://msdn.microsoft.com/en-us/library/bb397687.aspx
你会打电话像这样这样的方法,假设你想创建一个具体的仓库实现:
var repo = new StuffRepo();
IEnumerable<Stuff> stuff = repo.Query(s => s.SomeProperty == "Foo");
SO表达,或过滤器,是一个匿名函数(Func),该函数接受一个T(在我的例子中,是一个Stuff,由别名s指出),并返回一个布尔值。因此在SQL中:
select *
from stuff s
where s.SomeProperty = "Foo"