Linq PredicateBuilder多标准 List Prs=data.Products .其中(x=>x.productColor .其中(y=>y.Color==“蓝色”) .Select(z=>z.ProductID) .包含(x.ID)和&x.productColor .其中(y=>y.Color==“红色”) .Select(z=>z.ProductID) .包含(x.ID)) .ToList();

Linq PredicateBuilder多标准 List Prs=data.Products .其中(x=>x.productColor .其中(y=>y.Color==“蓝色”) .Select(z=>z.ProductID) .包含(x.ID)和&x.productColor .其中(y=>y.Color==“红色”) .Select(z=>z.ProductID) .包含(x.ID)) .ToList();,linq,predicatebuilder,multiple-select-query,Linq,Predicatebuilder,Multiple Select Query,如何使用PredicateBuilder多标准 类似于以下内容: List<Product> Prs = data.Products .Where(x=> x.ProductColors .Where(y=> y.Color=="blue") .Select(z=> z.ProductID)

如何使用PredicateBuilder多标准

类似于以下内容:

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(); 
var-internal=PredicateBuilder.False();
内部=内部。或(p=>p.Description.Contains(“foo”);
内部=内部。或(p=>p.Description.Contains(“far”));
var outer=PredicateBuilder.True();
外部=外部和(p=>p.价格>100);
外部=外部和(p=>p.价格<1000);
外部=外部和(内部);
var results=data.Products.AsExpandable().Where(外部)
您可以阅读有关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)