有没有办法将order by子句传递给EF中的DbSet类?
我正在使用C#
答案 0 :(得分:13)
我不确定如何从 DbSet 中执行此操作,但您可以通过访问 IQueryable 来从 DBContext 执行此操作
private readonly DbContext context;
...
context.Set<T>().OrderBy(item => item.Property)
答案 1 :(得分:3)
这里db.Employees是一个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);
}
}
}
}
答案 2 :(得分:3)
如何直接在实体上使用.OrderBy
?
db.Employees.OrderBy(p => p.Id);
答案 3 :(得分:2)
正如Alexandre所提到的,你可以在查询中这样做:
var emps = from e in _db.Employees
orderby e.FirstName
select e;
这里_db.Employees是DbSet。
答案 4 :(得分:1)
答案 5 :(得分:0)
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();
答案 6 :(得分:-1)
首先你必须导入Linq
using System.Linq;
...
_context.DBSetEntity.OrderBy(predicate);