我们在新项目中使用带有 SQL Server 的 Linq-to-SQL 作为 ORM。我以前从未使用过 Linq-to-SQL,所以我的问题可能有点愚蠢。我想要一个方法,通过谓词在数据库中搜索实体,如下所示:
public IEnumerable<T> Get<T>(Expression<Func<T, bool>> @where)
您能否提供一些建议,让我可以看到一些代码示例或如何实现它的想法?
我们在新项目中使用带有 SQL Server 的 Linq-to-SQL 作为 ORM。我以前从未使用过 Linq-to-SQL,所以我的问题可能有点愚蠢。我想要一个方法,通过谓词在数据库中搜索实体,如下所示:
public IEnumerable<T> Get<T>(Expression<Func<T, bool>> @where)
您能否提供一些建议,让我可以看到一些代码示例或如何实现它的想法?
您想要 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>
)。