2009-11-27 21 views

回答

0

有多少行是什麼呢?只需總是獲取所有40列,然後忽略不需要的值可能會更簡單。如果這會給性能問題,那麼你可以使用選擇擴展選擇您想要的列:

IQueryable<MyResult> myResult; 
if (wantColumnFoo) { 
    myResult = table.Select(x => new MyResult { x.Id, Foo = x.Foo }); 
} else { 
    myResult = table.Select(x => new MyResult { x.Id, Foo = null }); 
} 

但是很快就被大量的工作,如果你需要處理的所有40列這樣。

+0

不是一個好主意,帶回你不需要的數據,然後必須進行後查詢過程... – 2009-11-27 22:30:40

+0

我想你誤會了。第一個例子帶回了太多的數據,但沒有做任何處理 - 只需忽略不需要的字段。第二個例子不會帶回太多的數據。該查詢由Linq自動優化。 – 2009-11-27 22:54:19