Asp.net 具有LINQ(EntityFramework)的动态过滤器
问题很简单。我们有一些商店有很多产品。 例如,每个项目都有字段和许多其他字段: 身高 重量 长 名称 颜色 价格 我们实现了一些页面,在这里我们可以根据价格、长度和字符串颜色等数字范围过滤项目 因此,问题在于: -我们需要允许人们根据颜色+价格、颜色+长度+重量以上的任何标准过滤物品 使用预定义的SELECT+WHERE的基本方法太难控制 还有其他选择吗 谢谢。通用解决方案 最常见的解决方案是执行大型if`案例。这需要一些时间来支持你所有的领域,但最终会非常有效 但是,如果您想动态地执行此操作,两个第三方库可以帮助您完成此操作 LINQ动态 所需的语法与C有点不同,但效果很好。这是做这种事最受欢迎的图书馆 求值表达式 免责声明:我是项目的所有者 该库不是免费的,但您可以使用与C相同的语法执行几乎任何动态LINQ 因此,您将能够构建一个字符串进行计算,而库将为您完成其余的工作 以下是使用EF Classic的一些示例:Asp.net 具有LINQ(EntityFramework)的动态过滤器,asp.net,sql-server,entity-framework,linq,asp.net-core,Asp.net,Sql Server,Entity Framework,Linq,Asp.net Core,问题很简单。我们有一些商店有很多产品。 例如,每个项目都有字段和许多其他字段: 身高 重量 长 名称 颜色 价格 我们实现了一些页面,在这里我们可以根据价格、长度和字符串颜色等数字范围过滤项目 因此,问题在于: -我们需要允许人们根据颜色+价格、颜色+长度+重量以上的任何标准过滤物品 使用预定义的SELECT+WHERE的基本方法太难控制 还有其他选择吗 谢谢。通用解决方案 最常见的解决方案是执行大型if`案例。这需要一些时间来支持你所有的领域,但最终会非常有效 但是,如果您想动态地执行此操作,
乔纳森是对的。我认为使用if案例将是最简单的,并且看起来像这样 var res=_dbContextorSource.table.Wherex=>x.ID>0//有东西可以把他们都弄到手 //或者x=>x.ID>=0&&x.ID x.GetType。 GetPropertyfilter.MatchingName.GetValuex==filter.FilterValue; } var结果=res.ToList;
普拉斯,发一些代码。。。