Czy istnieje sposób przekazania klauzuli order by do klasy DbSet w EF?Sortowanie danych przy użyciu EF DbSet
używam C#
Czy istnieje sposób przekazania klauzuli order by do klasy DbSet w EF?Sortowanie danych przy użyciu EF DbSet
używam C#
nie jestem pewien jak to zrobić z DbSet, ale można to zrobić z DBContext przez uzyskanie dostępu do IQueryable
private readonly DbContext context;
...
context.Set<T>().OrderBy(item => item.Property)
miałoby to być zrobione w zapytaniu,
albo trzeba by zdefiniować QueryView w Edmx.
a QueryView może służyć do określania/kolejności/filtrowania danych.
Wystarczy popatrzeć na to: DefiningQuery versus QueryView
Używam kodu pierwszego podejścia. Brak pliku Edmx. – Omar
możesz spożywać EDMX z kodu, ale z drugiej strony jest to sprzeczne z pierwszą koncepcją całego kodu. –
Jak wspomniano Alexandre można to zrobić w zapytaniu jak:
var emps = from e in _db.Employees
orderby e.FirstName
select e;
Tutaj _db.Employees jest DbSet.
Tutaj db.Employees jest DBSet. Czy to właśnie próbujesz zrobić?
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);
}
}
}
}
Co powiesz na używanie .OrderBy
bezpośrednio na Entity?
db.Employees.OrderBy(p => p.Id);
Wiem, że nie jest to dokładnie to, o co prosiłem, ale spełnia to zadanie w widoku – Omar