使用 EF DbSet 对数据进行排序
本文关键字:排序 数据 EF DbSet 使用 | 更新日期: 2023-09-27 17:56:59
有没有办法将 order by 子句传递给 EF 中的 DbSet 类?
我正在使用 C#
我不确定如何从 DbSet 执行此操作,但您可以通过访问 IQueryable 从 DBContext 执行此操作
private readonly DbContext context;
...
context.Set<T>().OrderBy(item => item.Property)
直接在实体上使用.OrderBy
怎么样?
db.Employees.OrderBy(p => p.Id);
这里 db.员工是DBSet。这就是你想做的吗?
using System.Linq;
namespace MyNamespace
{
public class MyClass
{
public DBContext db;
public void MyMethod
{
foreach (var emp in db
.Employees
.Where(e => e.IsActive) // (or whatever)
.OrderBy(e => e.LastName))
{
DoSomething(emp);
}
}
}
}
正如Alexandre所提到的,你可以在查询中做到这一点,如下所示:
var emps = from e in _db.Employees
orderby e.FirstName
select e;
这里_db。员工是 DbSet。
这
必须在查询中完成,
或者您需要在 Edmx 中定义 QueryView。
查询视图可用于指定/排序/过滤数据。
看看这个: DefiningQuery vs. QueryView
using System.Data.Entity;
using System.Linq;
var items = DataContext.Employees.OrderBy(x=> x.Name).ToList();
或者,对于异步:
var items = await DataContext.Employees.OrderBy(x=> x.Name).ToListAsync();