将 Linq.包含方法添加到表达式 func<对象,布尔值>



我在屏幕截图中的那个黄色部分有问题。我想要如果SelectedGroup不是空的。除了添加到该表达式的术语外,还要添加另一个条件。就是这样。

c => SelectedGroup.Contains (c.CourseGroup.Id) 

选择所有在该范围内具有其ID的选定组。我写的这个查询不起作用。给出的错误是无法将其翻译成SQL查询。我不知道解决这个问题。请帮我

在此处输入图像描述

以及有关我的代码的更多详细信息 - 这是我的代码存储库:

在此处输入链接说明

在此处输入链接描述

乘坐combine func,它无济于事。如果您真的打算返回查询。

您可以做的是:

Expression<Func<Course, bool>> expression = c => (string.IsNullOrEmpty(Title) || EF.Functions.Like(c.CourseTitle, $"%{Title}%")
        && c.IsDeleted == IsDeleted);
        switch (statusType)
        {
            case PriceStatusType.All:
                break;
            case PriceStatusType.Free:
                queryable = queryable.Where(expression).Where(c => c.CoursePrice < 1000);
                break;
            case PriceStatusType.Cash:
                queryable = queryable.Where(expression).Where(c => c.CoursePrice <= MaxPrice && c.CoursePrice >= MinPrice);
                break;
        }
        if (SelectedGroup != null && SelectedGroup.Any())
        {
            Expression<Func<Course, bool>> e = c => SelectedGroup.Contains(c.CourseGroup.Id);
            queryable = queryable.Where(expression);
            queryable = queryable.Where(c => SelectedGroup.Contains(c.CourseGroup.Id));

        }
        return queryable;

另外,我删除了包含,因为它是没有用的,如果需要的话,应由呼叫者使用。

相关内容

  • 没有找到相关文章

最新更新