1

我当前的 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 表达式?

4

0 回答 0