我看到了一些使用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"