2011-05-20 41 views

Trả lời

12

Tôi không chắc chắn làm thế nào để làm điều đó từ DbSet, nhưng bạn có thể làm điều này từ DBContext bằng cách truy cập vào các IQueryable

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

Tôi biết điều này không chính xác những gì tôi đã hỏi, nhưng nó có công việc ngay tại đó trong giao diện – Omar

1

này sẽ phải được thực hiện trong một truy vấn,

hoặc bạn sẽ cần phải xác định một QueryView trong EDMX.

một QueryView có thể được dùng để xác định/theo thứ tự/lọc dữ liệu.

Có xem xét này: DefiningQuery versus QueryView

+0

Tôi đang sử dụng phương pháp tiếp cận mã đầu tiên. Không có tệp Edmx. – Omar

+0

bạn có thể tiêu thụ EDMX từ mã đầu tiên, nhưng sau đó một lần nữa nó kinda bất chấp toàn bộ khái niệm mã đầu tiên. –

2

Như đã đề cập bởi Alexandre bạn có thể làm điều đó trong truy vấn như:

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

Đây _db.Employees là DbSet.

3

Dưới đây là một db.Employees DBSet. Đó có phải là những gì bạn đang cố gắng làm không?

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

Điều gì về cách sử dụng .OrderBy trực tiếp trên thực thể?

db.Employees.OrderBy(p => p.Id); 
Các vấn đề liên quan