2012-04-11 88 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>)。