Я хочу получить записи из базы данных с помощью 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 или способ отображения
Спасибо за ваше время ...