如何在 lambda entity framework 中动态排序?
How to sorting dynamic in lambda entity framework?
我想在 lambda 实体中进行动态排序 framework.I 建立了更多时间,但似乎行不通。
////string column_name // the name of column in table <<< don't care this, I finished
////string sort_order // ASC or DESC <<< don't care this, I finished
using (var db = new ABCEntities())
{
// get dynamic type of column name , but i can not
// ???????????
var columnExp = typeof(LOCATION).GetProperty(column_name);
IEnumerable<LOCATION> query = db.LOCATIONs;
if(sort_order = "ASC")
{
query = query.OrderBy(columnExp).Tolist();
}
else
query = query.OrderByDescending(columnExp).Tolist();
}
我试试关注
query = db.LOCATIONs.OrderByDescending(q => q.GetType().GetProperty(column_name).GetValue(q, null)).ToList();
但在
处出现错误
LINQ to Entities does not recognize the method 'System.Object GetValue(System.Object, System.Object[])' method, and this method cannot be translated into a store expression
你能告诉我一些错误或错误以及如何解决吗?
非常感谢。
使用 Dynamic Linq 怎么样?
它可以从字符串生成查询。
using (var db = new ABCEntities()){
var columnExp = "columnName";
var query = db.LOCATIONs;
if(sort_order = "ASC")
{
query = query.OrderBy(columnExp).Tolist();
}
else
{
query = query.OrderByDescending(columnExp).Tolist();
}
}
我想在 lambda 实体中进行动态排序 framework.I 建立了更多时间,但似乎行不通。
////string column_name // the name of column in table <<< don't care this, I finished
////string sort_order // ASC or DESC <<< don't care this, I finished
using (var db = new ABCEntities())
{
// get dynamic type of column name , but i can not
// ???????????
var columnExp = typeof(LOCATION).GetProperty(column_name);
IEnumerable<LOCATION> query = db.LOCATIONs;
if(sort_order = "ASC")
{
query = query.OrderBy(columnExp).Tolist();
}
else
query = query.OrderByDescending(columnExp).Tolist();
}
我试试关注
query = db.LOCATIONs.OrderByDescending(q => q.GetType().GetProperty(column_name).GetValue(q, null)).ToList();
但在
处出现错误LINQ to Entities does not recognize the method 'System.Object GetValue(System.Object, System.Object[])' method, and this method cannot be translated into a store expression
你能告诉我一些错误或错误以及如何解决吗? 非常感谢。
使用 Dynamic Linq 怎么样? 它可以从字符串生成查询。
using (var db = new ABCEntities()){
var columnExp = "columnName";
var query = db.LOCATIONs;
if(sort_order = "ASC")
{
query = query.OrderBy(columnExp).Tolist();
}
else
{
query = query.OrderByDescending(columnExp).Tolist();
}
}