Wednesday, March 30, 2011

How to name fields using Dynamic Linq?

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?

From stackoverflow
  • ok, figured it out, this wis what was needed:

    var v = db.items.Select("new (item_name as name,item_price as price)");
    
    Cem : how can you access to those fields? v.name? :s
    naspinski : yes, whatever you name them

0 comments:

Post a Comment