Сортировка данных с помощью EF DbSet - PullRequest
5 голосов
/ 20 мая 2011

Есть ли способ передать заказ по предложению в класс DbSet в EF?

Я использую C #

Ответы [ 6 ]

14 голосов
/ 20 мая 2011

Я не уверен, как это сделать с DbSet , но вы можете сделать это с DBContext , получив доступ к IQueryable

private readonly DbContext context;
...
context.Set<T>().OrderBy(item => item.Property)
3 голосов
/ 11 июля 2014

Как насчет использования .OrderBy непосредственно на сущности?

db.Employees.OrderBy(p => p.Id);
3 голосов
/ 29 октября 2013

Здесь 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 голосов
/ 20 мая 2011

Как упомянул Александр, вы можете сделать это в запросе, например:

var emps = from e in _db.Employees
            orderby e.FirstName
            select e;

Здесь _db.Employees - DbSet.

1 голос
/ 20 мая 2011

это должно быть сделано в запросе,

или вам нужно определить QueryView в Edmx.

QueryView может использоваться для указания / упорядочения / фильтрации данных.

Посмотрите на это: DefiningQuery против QueryView

0 голосов
/ 13 октября 2018
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();
...