Linq在select new语句中使用变量作为列名

时间:2014-01-10 15:15:26

标签: linq variables select

我有一个LINQ查询,你可以看到我试图将变量用作列名。

string first = "someColumnName1";
string sec = "someColumnName2";
string third = "someColumnName3";

var data = (from i in ctx.PlanskaKalkulacijas
            where i.PKid.Value == id
            select new { first = i.NP1, sec = i.NP2, third = i.NP3}
           ).OrderByDescending(m => m.Id)
            .ToList();

此代码在gridview中生成列名称为first,sec和third,但我需要someColumnName1,someColumnName2,someColumnName3。

任何帮助?

1 个答案:

答案 0 :(得分:2)

在插入正确创建的匿名类型的数据或名称属性后,重命名gridview中的列。

var data = (from i in ctx.PlanskaKalkulacijas 
            where i.PKid.Value == id 
            select new 
            { 
                someColumnName1 = i.NP1, 
                someColumnName2 = i.NP2, 
                someColumnName3 = i.NP3
            }).OrderByDescending(m => m.Id)
              .ToList();

如果您在编译时不知道值,只需将其重命名即可。为此,请按照此处的this question进行操作。