2009-11-27 22 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