2012-04-11 86 views
0

我們使用SQL Server的Linq-to-SQL作爲我們新項目的ORM。我之前從未使用過Linq-to-SQL,所以我的問題可能有點愚蠢。我想有將由謂語DB執行的實體搜索的方法,是這樣的:如何在Linq-to-SQL中使用謂詞搜索

public IEnumerable<T> Get<T>(Expression<Func<T, bool>> @where) 

您能給一些建議,我可以看到一些代碼樣本或想法如何實現這一點?

+0

hm ...不明白它怎麼能幫我把請求發送到數據庫 – 2012-04-11 14:38:01

回答

1

你想去的地方(在這裏,originalList任何枚舉的,特別是它可以從上下文表):

var filteredList = originalList.Where(element => ShouldBeIncluded(element)); 

編輯:

var filteredList = 
    from element in originalList 
    where ShouldBeIncluded(element) 
    select element; 

如果ShouldBeIncluded是Func<T, bool>,這裏有一個簡化的語法:

var filteredList = originalList.Where(ShouldBeIncluded); 

編輯2:也請注意,完整的語法是:

var filteredList = originalList.Where<TTypeOfElement>(element => ShouldBeIncluded(element)); 

但通用的參數可以被省略,因爲編譯器將從originalList的類型推斷它(假設它是一個IEnumerable<TTypeOfelement>)。