2009-02-11 4 views
4

J'ai une requête énorme qui est faite dynamiquement, mais je veux que l'instruction select ne produise pas les noms de colonnes, buut les valeurs personnalisées. Par exemple, si je fais une requête Linq normale, je peux faire quelque chose comme ceci:Comment nommer des champs en utilisant Dynamic Linq?

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

qui me donnera la belle « .name » et « .prix » accès, à l'

mais si je suis en utilisant dyanmic Linq, je peux le faire:

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

fonctionne très bien, mais

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

Je reçois une erreur: "Aucune propriété ou champ" nom "n'existe dans le type" article ""

Est-ce que cela peut être fait?

Répondre

4

ok, tout compris, ce wis ce qui était nécessaire:

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

comment pouvez-vous accéder à ces champs? v.name? : s – Cem

+0

oui, peu importe comment vous les appelez – naspinski

1

vous pouvez également essayer.

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