Как назвать поля с помощью 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)");

Я получаю сообщение об ошибке: "Нет свойства или поля "имя" в типе "элемент""

Можно ли это сделать?


person naspinski    schedule 11.02.2009    source источник


Ответы (2)


ок, разобрался, вот что нужно:

var v = db.items.Select("new (item_name as name,item_price as price)");
person naspinski    schedule 11.02.2009
comment
как вы можете получить доступ к этим полям? в.имя? :с - person Cem; 17.12.2009

вы также можете попробовать это.

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