Linq动态顺序不工作
本文关键字:工作 顺序 动态 Linq | 更新日期: 2023-09-27 18:12:07
我不知道如何创建一个动态Linq查询。
正在运行:
var query = from article in context.DP_ARTICLES
orderby article.ART_NUM descending
select new ArticleItem() { Article = article };
但是这行不通:
var query = from article in context.DP_ARTICLES
orderby("ART_NUM DESC")
select new ArticleItem() { Article = article };
编辑:的目标是订购一个listview列,所以在我的方法我得到sql列名作为字符串参数(如ART_NUM)。所以最好是在我的查询中直接使用它,而不是进行切换…
动态方法只在使用调用的方法语法时起作用,在使用查询语法时不起作用。
var query = context.DP_ARTICLES
.OrderBy("ART_NUM DESC")
.Select(a => new ArticleItem { Article = a });
如果您的查询基于谓词,那么您可以执行以下操作:
var query = context.DP_ARTICLES;
if(predicate)
query= query.OrderBy(article => article.ART_NUM).AsQueryable();
else if(predicate2)
query = //Second Order by clause
.... //More sort options
else
//Default action if needed
var results = query.select(article => new ArticleItem
{
Article = article
}).ToList();
你需要改变
orderby("ART_NUM DESC")
orderby article.ART_NUM descending
as order不接受字符串字面值