我有一个带有 CustomerID 和 ProductCode 的简单表。使用以下 Linq 查询,我得到了所有购买了 10EDUC或12CONV 而没有购买 10CONV 和 11CONV 的 ID 的列表。我需要做的是让它返回那些购买了 10EDUC和12CONV 而没有购买 10CONV 和 11CONV 的人的 ID。
有什么想法吗?TIA
var IncludePredicate = PredicateBuilder.True<Products>();
var ExcludePredicate = PredicateBuilder.True<Products>();
List<string> IncludeProducts = new List<string>();
List<string> ExcludeProducts = new List<string>();
ExcludeProducts.Add("10CONV");
ExcludeProducts.Add("11CONV");
IncludeProducts.Add("10EDUC");
IncludeProducts.Add("12CONV");
IncludePredicate = IncludePredicate.And(m=>IncludeProducts.Contains(m.Service));
ExcludePredicate = ExcludePredicate.And(m => ExcludeProducts.Contains(m.Service));
var IncludeResults = (from d in Products
.AsExpandable()
.Where(IncludePredicate)
.Distinct()
select d.CustomerID
)
.Except(from ex in Services
.Where(ExcludePredicate)
select ex.CustomerID);