4

I have a huge query that is being made dynamically, but I want the select statement to not output the column names, buut custom values. FOr example, if I am doing a normal Linq query, I can do something like this:

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

which will give me the nice '.name' and '.price' accessors

but if I am using Dyanmic Linq, I can do this:

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

works fine, but

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

I get an error: "No property or field 'name' exists in type 'item'"

Can this be done?

naspinski
  • 34,020
  • 36
  • 111
  • 167

2 Answers2

4

ok, figured it out, this wis what was needed:

var v = db.items.Select("new (item_name as name,item_price as price)");
naspinski
  • 34,020
  • 36
  • 111
  • 167
1

you can also try this.

var v = db.items.Select("new(it[\"item_name\"]  as name,it[\"item_price\"] as price)"); 
Stephen
  • 1,737
  • 2
  • 26
  • 37