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();
如何使用PredicateBuilder多标准 类似于以下内容: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)
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)