Вот мои нынешние отношения
DataRelation relation = new DataRelation("EventCategoryRelation", eventsTable.Columns["event_id"], eventCategoriesTable.Columns["event_id"]);
ds.Tables.Add(eventsTable);
ds.Tables.Add(eventCategoriesTable);
ds.Relations.Add(relation);
Вот быстрый просмотр таблиц
EventsTable
event_id | event_description
1 || "First Event"
EventCategoriesTable
event_category_id || event_id || category_id
1 || 1 || 1
2 || 1 || 2
Отношение многие-ко-многим (одно событие для многих категорий)
Вот как я заполняю свой DTO, используя цикл foreach
foreach (DataRow row in eventsTable.Rows)
{
Event events = new Events();
events.Description = row["event_description"].ToString();
DataRow[] aDr = row.GetChildRows("EventCategoryRelation");
foreach (DataRow dr in aDr)
{
Categories category = new Categories();
category.CategoryID = Int64.Parse(dr["category_id"].ToString());
events.CategoryList.Add(category);
}
}
У меня есть больше полей в моем фактическом коде. Я хочу заменить цикл foreach запросом LINQ. Это возможно?