Есть ли способ передать заказ по предложению в класс DbSet в EF?
Я использую C #
Я не уверен, как это сделать с DbSet , но вы можете сделать это с DBContext , получив доступ к IQueryable
private readonly DbContext context; ... context.Set<T>().OrderBy(item => item.Property)
Как насчет использования .OrderBy непосредственно на сущности?
.OrderBy
db.Employees.OrderBy(p => p.Id);
Здесь 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); } } } }
Как упомянул Александр, вы можете сделать это в запросе, например:
var emps = from e in _db.Employees orderby e.FirstName select e;
Здесь _db.Employees - DbSet.
это должно быть сделано в запросе,
или вам нужно определить QueryView в Edmx.
QueryView может использоваться для указания / упорядочения / фильтрации данных.
Посмотрите на это: DefiningQuery против 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();