在Foreach循环中使用谓词生成器时遇到问题

时间:2018-08-16 10:16:49

标签: c#

我需要在foreach循环中使用Predicate Builder创建多个And条件,但该谓词采用最新的And条件。基本上,谓词应该包含And条件的列表,而reportProfileid包含条件的列表

 var cpaclassids = FetchProductTypes(ids); 
 var temp = cpaclassids;

 var query = (from x in partJoinTableRepository.GetPartJoinQuery()
                  join y in partRepository.GetPartsQuery() on x.PartId equals y.Id
                  join z in partProductTypeReposiotry.GetPartProductTypesQuery() on x.PartId equals z.PartId
                  where y.IsSkipped == 0 && (y.IsDisabled != "Y" || y.IsDisabled == null) && z.CreatedDate == x.CreatedDate
                  && x.CreatedDate == Convert.ToDateTime(fromDate)
                  select x).Cast<PartJoinTable>();

 var predicate = PredicateBuilder.True(query);

 foreach (var item in reportProfilesids)
 {
    predicate = predicate.And(z => temp.Contains(z.ProductTypeId.ToString()));
 }

var lst1 = query.AsQueryable().Where(predicate).Distinct().ToList();

0 个答案:

没有答案
相关问题