Linq PredicateBuilder 多条件

标签 linq predicatebuilder multiple-select-query

List<Product> Prs = data.Products
                    .Where(x=> x.ProductColors
                                .Where(y=> y.Color=="blue")
                                .Select(z=> z.ProductID)
                                .Contains(x.ID) && x.ProductColors
                                                     .Where(y=> y.Color== "red")
                                                     .Select(z=> z.ProductID)
                                                     .Contains(x.ID))
                    .ToList(); 

如何PredicateBuilder多条件?

最佳答案

类似于以下内容:

var inner = PredicateBuilder.False<Product>();
inner = inner.Or (p => p.Description.Contains ("foo"));
inner = inner.Or (p => p.Description.Contains ("far"));

var outer = PredicateBuilder.True<Product>();
outer = outer.And (p => p.Price > 100);
outer = outer.And (p => p.Price < 1000);
outer = outer.And (inner);

var results = data.Products.AsExpandable().Where(outer)

您可以阅读有关 PredicateBuilder here 的更多信息

关于Linq PredicateBuilder 多条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10912742/

相关文章:

c# - 解码 LINQ 的服务?

c# - 动态库 (System.Linq.Dynamic) SQL LIKE 运算符

c# - Linq to XML 生成 DDL

MySQL 是否有单选查询数据库中各种不相关的值?

sql - 无法绑定(bind)多部分标识符

c# - LINQ如何在查询后使用第一项的位置组合元组中的第二项

entity-framework - Entity Framework 中的 LinqKit 和异步

c# - 为什么即使在每次迭代时重新创建查询也会应用多个过滤器

javascript - 点击功能上的多个选择器,如何知道点击了哪个选择器?