2013-06-28 3 views
0

Я очень новичок в Linq. У меня проблема. Я пытаюсь получить список файлов. Вот запрос, который я написал.Как получить список объектов?

var DataSource = from d in db.Directories 
       join dok in db.Files on d.DirectoryId equals dok.DirectoryId 
       where dok.SomeId == (int)cboSome.SelectedValue 
       select new { d }; 

Это извлекает право, но я хочу получить список файлов. Когда я беру источник данных, отбрасывая var в Files, он возвращает null. Как я могу это сделать? Извините, если это слишком просто.

+0

Не знаете, каков ваш вопрос ... –

+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

ответ

3

Какой результат вы хотите?

Если вы хотите, чтобы привести объекты из db.Directories, попробовать что-то вроде этого:

var DataSource = (from d in db.Directories 
          join dok in db.Files on d.DirectoryId equals dok.DirectoryId 
          where dok.SomeId == (int)cboSome.SelectedValue 
          select d).ToList(); 

Не забудьте вызвать метод ToList().

+0

Спасибо, что это сработало. Я не знал разницы между select new и select. – Ada

+0

select new возвращает тип nonnymus, который завершает фактический объект в вашем случае. Забудьте об этом, когда начинаете с обучения Linq – CSharpie

+0

Благодарим за помощь. – Ada

2

Существует метод расширения .ToList(), который должен преобразовывать любые IEnumerable в List.

например var List = DataSource.ToList();