2011-05-20 25 views

回答

12

我不知道該怎麼做,從DbSet,但你可以從的DbContext做到這一點通過獲取到的IQueryable訪問

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

我知道這不完全是我問的,但它在視圖中正確地執行工作 – Omar 2011-05-20 16:13:21

1

這將有一個查詢做,

,或者您需要定義在一個EDMX QueryView。

QueryView可用於指定/排序/過濾數據。

看一看這樣的:DefiningQuery versus QueryView

+0

我正在使用代碼第一種方法。沒有Edmx文件。 – Omar 2011-05-20 15:42:26

+0

你可以先從代碼中消耗一個EDMX,但它再次違背了整個代碼的第一個概念。 – 2011-05-20 17:10:09

2

正如亞歷山大提到你可以做的是,在類似的查詢:

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

這裏_db.Employees是DbSet。

3

這裏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

怎麼樣在實體上直接使用.OrderBy

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