C# 林氏;动态查询或如何获取";“未知”;列数?
我有一个包含40(int)列的表,我需要根据用户输入获取某些列,有时可能是1,有时可能是全部40,如何使用LINQ实现这一点?使用动态LINQ库C# 林氏;动态查询或如何获取";“未知”;列数?,c#,linq,C#,Linq,我有一个包含40(int)列的表,我需要根据用户输入获取某些列,有时可能是1,有时可能是全部40,如何使用LINQ实现这一点?使用动态LINQ库 它有多少行?可能更简单的方法是总是获取所有40列,然后忽略不需要的值。如果这会导致性能问题,则可以使用Select扩展来选择所需的列: IQueryable<MyResult> myResult; if (wantColumnFoo) { myResult = table.Select(x => new MyResult {
它有多少行?可能更简单的方法是总是获取所有40列,然后忽略不需要的值。如果这会导致性能问题,则可以使用Select扩展来选择所需的列:
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 });
}
IQueryable myResult;
if(wantColumnFoo){
myResult=table.Select(x=>newmyresult{x.Id,Foo=x.Foo});
}否则{
myResult=table.Select(x=>newmyresult{x.Id,Foo=null});
}
但是,如果您需要像这样处理所有40列,那么很快就会有很多工作要做。这不是一个好主意,返回您不需要的数据,然后必须对其进行后期查询处理……我想您误解了。第一个示例返回了太多的数据,但没有进行任何处理—只需忽略不需要的字段。第二个例子没有带回太多的数据。查询由Linq自动优化。