0

我们在新项目中使用带有 SQL Server 的 Linq-to-SQL 作为 ORM。我以前从未使用过 Linq-to-SQL,所以我的问题可能有点愚蠢。我想要一个方法,通过谓词在数据库中搜索实体,如下所示:

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

您能否提供一些建议,让我可以看到一些代码示例或如何实现它的想法?

4

1 回答 1

1

您想要 Where (在这里, originalList 是任何可枚举的,特别是它可以是您上下文中的表):

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

编辑:

或者

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

如果 ShouldBeIncluded 是 a Func<T, bool>,则有一个引人注目的简化语法:

var filteredList = originalList.Where(ShouldBeIncluded);

编辑2:另外,请注意完整的语法是:

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

但是可以省略泛型参数,因为编译器会从 originalList 的类型中推断出它(假设它是 an IEnumerable<TTypeOfelement>)。

于 2012-04-11T11:41:08.763 回答