首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LinqKit核心PredicateBuilder不能正常工作

LinqKit核心PredicateBuilder不能正常工作
EN

Stack Overflow用户
提问于 2022-12-04 09:21:14
回答 1查看 15关注 0票数 0

我有一个疑问:

代码语言:javascript
复制
var query = LinqKit.PredicateBuilder.New<Resume>();
if (selectedWorkFieldID != 0)
{
   query = query.And(js => js.WorkFieldID == selectedWorkFieldID);
   if (!(selectedJobIDs.Contains(0) && selectedJobIDs.Count() == 1))
   {
       foreach (int jobID in selectedJobIDs)
          query = query.Or(js => js.JobID == jobID);
   }
}

var finalQuery = context.Resumes.AsNoTracking().Include(r => r.ResumeSkills)
    .ThenInclude(rs => rs.Skill).Include(r => r.JobSeeker).ThenInclude(r => r.Profile)
    .AsExpandable().Where(query);
count = finalQuery.Count();

resumes = finalQuery.Skip(args.Skip.Value).Take(args.Top.Value).ToList<Resume>();

此查询返回所有未过滤的简历。调试时,调试器curser进入使用或筛选的foreach块,选择的jobID中有一个jobID,但查询返回所有的恢复。谓词生成器似乎根本不起作用。如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2022-12-04 10:34:44

我将代码改为:

代码语言:javascript
复制
if (selectedWorkFieldID != 0)
        {
            query = query.And(js => js.WorkFieldID == selectedWorkFieldID);
            if (!(selectedJobIDs.Contains(0) && selectedJobIDs.Count() == 1))
            {
                var query2 = LinqKit.PredicateBuilder.New<Resume>();
                foreach (int jobID in selectedJobIDs)
                    query2 = query2.Or(js => js.JobID == jobID);
                query.And(query2);
            }
        }

而且它被纠正了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74674230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档