【发布时间】:2013-04-07 05:50:47
【问题描述】:
我正在使用下面的方法来查询 EF
public virtual IEnumerable<TEntity> Get(
Expression<Func<TEntity, bool>> filter = null,
Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null,
string includeProperties = "")
{
IQueryable<TEntity> query = dbSet;
if (filter != null)
{
query = query.Where(filter);
}
foreach (var includeProperty in includeProperties.Split
(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries))
{
query = query.Include(includeProperty);
}
if (orderBy != null)
{
return orderBy(query).ToList();
}
else
{
return query.ToList();
}
}
现在我想创建动态Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> 表达式来排序我的数据。
我只知道字段名称为字符串,订单类型(升序、降序)为字符串(asc、desc)
【问题讨论】:
-
这不是通常的订购方式;你见过这个吗? stackoverflow.com/questions/41244/dynamic-linq-orderby
-
@MarcGravell 谢谢,我看到了。但是 MS 的教程包含此代码,因此我正在尝试为此编写合适的动态 LINQ。其实我认为我成功了,但我必须做一些测试,然后让你知道。
标签: c# iqueryable linq-expressions iorderedqueryable