LINQ&动态查询或如何获得“未知”列数?

时间:2009-11-27 22:17:14

标签: c# linq

我有一个包含40(int)列的表,我需要根据用户输入获取某些列,有时它可能是1,有时它可能全部为40,我怎么能用LINQ做到这一点?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分: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列,那很快就会有很多工作。