xiv*_*ivo 9 repository-pattern entity-framework-4.1 asp.net-mvc-3
我正在试图弄清楚如何使用这个orderBy参数.我不确定我想要通过什么.
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();
}
}
Run Code Online (Sandbox Code Playgroud)
Ric*_*est 15
如果你从msdn文章中读到这个
"代码Func,IOrderedQueryable> orderBy也意味着调用者将提供lambda表达式.但在这种情况下,表达式的输入是TEntity类型的IQueryable对象.表达式将返回该IQueryable对象的有序版本.例如,如果存储库是针对Student实体类型实例化的,则调用方法中的代码可能为orderBy参数指定q => q.OrderBy(s => s.LastName)."
它说当你调用Get你应该提供一个lambda表达式,它将是IQueryable上的一个Func或函数,提供一个IOrderedQueryable.
因此,对于您使用的文章中使用的Student对象.
var students = repository.Get(x => x.FirstName = "Bob",q => q.OrderBy(s => s.LastName));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4524 次 |
| 最近记录: |