C# 可选地在linq中加载/选择列
假设我有一个像这样的linq查询C# 可选地在linq中加载/选择列,c#,linq,C#,Linq,假设我有一个像这样的linq查询 var stuff = from t1 in TableOne let t2 = t1.TableTwo where t1.id = "someId" select new { column1 = t1.Col1, column2 = t2.Col1
var stuff = from t1 in TableOne
let t2 = t1.TableTwo
where t1.id = "someId"
select
new
{
column1 = t1.Col1,
column2 = t2.Col1
column3 = (from t3 in TableThree
where t3.id = "someId"
select new SomeObject
{
Field1 = t3.Col1,
Field2 = t3.Col2
}).ToList()
}
现在,在某些场景中,我希望加载第3列中的数据,例如,当传入方法的参数包含this not null时。当参数为null时,为了效率起见,我不想加载它。关于如何实现所需结果的任何建议?在子查询中检查参数
someParameter
是否为空
column3 = (from t3 in TableThree
where
someParameter != null &&
t3.id == "someId"
select new SomeObject
{
Field1 = t3.Col1,
Field2 = t3.Col2
}).ToList()
if(非空)/*您拥有的*/其他。。。选择新的{/*不要在这里选择第3列*/}
也许?我喜欢答案如此简单,应该一直盯着我看!谢谢