我当前的 linq 表达式在这里。这是成功的工作
e.Result = (from d in Repository.db.Dursgals
select new
{
d.DursgalID,
d.Name,
d.PID,
d.inDate,
No = d.DursgalProps.FirstOrDefault(dp => dp.PropID == 4).IntValue,
IjCount = d.DursgalProps.FirstOrDefault(dp => dp.PropID == 32).IntValue ?? 0,
d.EzemshigchID
}).OrderBy(d => d.No)
但这是不完整的。我的客户想要选择列。我想要这样
e.Result = (from d in Repository.db.Dursgals
select new
{
d.DursgalID,
d.Name,
d.PID,
d.inDate,
foreach(var col in filteredcolumns){
switch(col.ValueTypeID){
case 1:
col.Name = d.DursgalProps.FirstOrDefault(dp => dp.PropID == col.ColID).IntValue;
break;
case 2:
col.Name = d.DursgalProps.FirstOrDefault(dp => dp.PropID == col.ColID).StringValue;
break;
}
},
d.EzemshigchID
}).OrderBy(d => d.No)
如何像这样动态构建 linq 表达式?