2013-09-22 19 views
3

我想在class我的ASPX來獲取從上下文數據後面的代碼,因爲這:我應該使用哪種IQueryable或IEnumerable來將行放入內存中?

MyClass.GetIt().Skip((page - 1) * perPage).Take(perPage); 

,但我不知道哪個這些方法我應該用在我的頁面不是所有行放在內存中?

1.

public static IQueryable<T> GetIt() 
{ 
    return context.MyObject.Where(i=>i.Type==1); 
} 

2.

public static IEnumerable<T> GetIt() 
{ 
    return context.MyObject.Where(i=>i.Type==1); 
} 

回答

2

第一個 - IQueryable<T>

返回IEnumerable會導致將DB中的所有匹配元素存入內存,並執行SkipTake作爲LINQ來進行對象查詢。