如何使用Dynamic Linq命名字段?

时间:2009-02-11 07:11:54

标签: c# asp.net linq dynamic dynamic-linq

我有一个动态制作的大量查询,但我希望select语句不输出列名,而是自定义值。举个例子,如果我正在进行正常的Linq查询,我可以这样做:

var v = from p in db.items select new { name = p.item_name, price = p.item_price };

这会给我很好的'.name'和'.price'访问者

但如果我使用Dyanmic Linq,我可以这样做:

var v = db.items.Select("new (item_name,item_price)");

工作正常,但

var v = db.items.Select("new (name=item_name,price=item_price)");

我收到错误: “类型'项目'中没有属性或字段'名称'”

可以这样做吗?

2 个答案:

答案 0 :(得分:4)

好吧,想通了,这需要什么:

var v = db.items.Select("new (item_name as name,item_price as price)");

答案 1 :(得分:1)

你也可以试试这个。

var v = db.items.Select("new(it[\"item_name\"]  as name,it[\"item_price\"] as price)");