【发布时间】:2020-07-10 10:51:54
【问题描述】:
我正在开发一个使用 Entity Framework Core 的应用程序(.Net Core 3.1、C# 8)。
我想用几个过滤选项过滤一个表。
我在 JSON 中获取过滤条件,并将其反序列化为一个对象。我想编写一个 where LINQ 查询,它将根据这些动态过滤选项过滤表。
问题是我需要使用许多选项和组合来管理过滤。
- 您可以过滤
market、country、vendor,其余过滤选项将为null。 - 您想过滤
country和vendor,那么market将是null以及其余的过滤器选项。
我正在查询一个巨大的表,因此编写一个完全转换为 SQL 的查询很重要。
以下代码无法正常工作。我正在寻找可以解决此问题的类似方法:
var filters = new demoFilterEntity()
{
Market = new List<string>() { "LAT", "NAM" }
};
var filteredData = demoMainRepository.GetAll().Where(x =>
x.Market != null && (filters.Market != null ? filters.Market.Contains(x.Market) : false) &&
x.Country != null && (filters.Country != null ? filters.Country.Contains(x.Market) : false)).ToList();
我会很感激关于如何解决这个问题并动态管理过滤的建议。
【问题讨论】:
标签: c# entity-framework .net-core entity-framework-core asp.net-core-3.1