Как Вы возвращаете определенные свойства из запроса linq, вместо того, чтобы завершить объекты?

Я только что загрузил поставщика Linq для NHibernate, и просто немного взволнован. Но я не знаю синтаксис Linq настолько хорошо.

Я могу возвратить целые объекты из запроса как это:

var query = from foo in session.Linq<Kctc.BusinessLayer.Domain.Case>()
                  where foo.CaseNumber > 0
                  select foo;

И я могу выбрать единственное свойство как это:

var query = from foo in session.Linq<Kctc.BusinessLayer.Domain.Case>()
                  where foo.CaseNumber > 0
                  select foo.Id;

Но как я выбрал бы два свойства, например, нечто. Идентификатор и нечто. Панель? Или разве который не возможен?

Спасибо

David

5
задан David 15 July 2010 в 13:24
поделиться

2 ответа

Используйте анонимную проекцию:

var query = from foo in session.Linq<Kctc.BusinessLayer.Domain.Case>() 
              where foo.CaseNumber > 0 
              select new { foo.Id, foo.Bar }; 
8
ответ дан 14 December 2019 в 01:00
поделиться

Вы должны создать новый анонимный тип, который будет доступен только в текущей области (т.е. его нельзя вернуть из метода и т. Д.)

var query = from foo in session.Linq<Kctc.BusinessLayer.Domain.Case>() 
              where foo.CaseNumber > 0 
              select new { foo.Id, foo.Bar }; 

Или вы можете создать собственный класс и заполнить его.

1
ответ дан 14 December 2019 в 01:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: