Сопоставление результатов запроса Linq с классом DTO

Я хочу получить записи из базы данных с помощью EF и присвоить значения классу DTO. Рассмотрите следующие таблицы для запроса Linq.

ТаблицаA, ТаблицаB, ТаблицаC

Для каждой записи TableA есть несколько записей в TableB. Для каждой записи TableB есть несколько записей в TableC. Теперь мои DTO выглядят так

public class TableA_DTO
{
    public int tableA_rowid { get; set; }
    //remaining tableA field definitions

    public List<TableB_DTO> TableB_records { get; set; }
}

public class TableB_DTO
{
    public int tableB_rowid { get; set; }
    //remaining tableB  field definitions

    public List<TableC_DTO> TableC_records { get; set; }
}

public class TableC_DTO
{
    public int tableC_rowid { get; set; }
    //remaining tableC field definitions
}

мой запрос linq выглядит примерно так

var qry = from ent in TableA
          select ent;

В моем классе сопоставления я перебираю элементы в результате запроса следующим образом:

    foreach (var dataitem in query)
    {
        TableA_DTO dto = new TableA_DTO();
        dto.tableA_rowid =  dataitem.ID;
        //remaining field definitions here
    }

Теперь это работает для всех полей в TableA, где он выводит одну запись из базы данных и устанавливает необходимые свойства в TableA_DTO для каждого поля в таблице TableA. Я хочу также заполнить все совпадающие записи в TableB в поле свойства TableA по имени TableB_records, а также в TableB_DTO все совпадающие записи из TableC в свойстве TableB_DTO по имени TableC_records

Можно ли это сделать? Что мне нужно изменить? Это запрос linq или способ отображения

Спасибо за ваше время ...

9
задан marc_s 13 February 2016 в 10:26
поделиться