【问题标题】:How to name fields using Dynamic Linq?如何使用 Dynamic Linq 命名字段?
【发布时间】:2010-10-06 20:24:47
【问题描述】:

我有一个巨大的动态查询,但我希望 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)");

我收到一个错误: “‘item’类型中不存在属性或字段‘name’”

这个可以吗?

【问题讨论】:

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


    【解决方案1】:

    好的,想通了,这就是我们所需要的:

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

    【讨论】:

    • 如何访问这些字段? v.name? :s
    【解决方案2】:

    你也可以试试这个。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 2011-11-13
      • 2017-11-21
      相关资源
      最近更新 更多