2011-05-20 32 views
5

ile veri sıralama EF'de bir DbSet sınıfına göre bir siparişi yayınlamanın bir yolu var mı? Bunun bir sorguda yapılması gerekir C#EF DbSet

cevap

12

Ben db.Employees bir DBSet İşte

private readonly DbContext context; 
... 
context.Set<T>().OrderBy(item => item.Property) 
+0

Bunun tam olarak ne istediğimi bilmediğini biliyorum, ancak işin görünümünde tam olarak var. – Omar

1

kullanıyorum

,

veya EDMX bir QueryView tanımlamak gerekir. Bir QueryView, verileri belirtmek/sıralamak/filtrelemek için kullanılabilir. İşte

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

_db.Employees DbSet geçerli: Alexandre tarafından belirtildiği gibi DefiningQuery versus QueryView

+0

Kod ilk yaklaşımı kullanıyorum. Edmx dosyası yok. – Omar

+0

, önce bir EDMX'i koddan tüketebilir, ancak daha sonra bütün kodu ilk konseptine meydan okuyor. –

2

sizin gibi sorguda bunu yapabilir:

şuna bir bakın.

3

IQueryable erişimi alarak DbSetgelen, ancak DBContext gelen yapabilirsiniz bunun nasıl emin değilim. Yapmaya çalıştığın şey bu mu?

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

.OrderBy'u doğrudan Entity'de kullanma hakkında ne düşünüyorsunuz?

db.Employees.OrderBy(p => p.Id);