这是我现在的关系
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);
以下是表格的快速浏览
事件表
event_id | event_description
1 || "First Event"
事件类别表
event_category_id || event_id || category_id
1 || 1 || 1
2 || 1 || 2
关系是多对多的(一个事件对应多个类别)
这是我使用 foreach 循环填充 DTO 的方法
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);
}
}
我的实际代码中有更多字段。我想用 LINQ 查询替换 foreach 循环。那可能吗?