将数据集更改为List<Form>
数据集有4个表,每个表与其他表有关系
ds.Relations.Add("Form_To_Tab", ds.Tables[0].Columns["Id"],
ds.Tables[1].Columns["FormId"]);
ds.Relations.Add("Tab_To_Section", ds.Tables[1].Columns["Id"],
ds.Tables[2].Columns["TabId"]);
ds.Relations.Add("Section_To_Attribute", ds.Tables[2].Columns["Id"],
ds.Tables[3].Columns["SectionId"]);
我想从数据库创建一个List只创建一个List<Form>
,其中包含数据集的数据
List<Form> -> List<Tab> -> List<Section> -> List<Attributes>
IE:Class Form的属性为List<Tab>
,Class Tab的属性为List<Section>
我有Form, Tab, Section, Attribute
类包含相关的数据表,所有列都作为属性
答案 0 :(得分:2)
您可以通过数据集中的关系递归选择所有数据,如下所示:
var result =
(from form in data.Tables["form"].Rows.Cast<DataRow>()
select
new Form
{
Tabs =
(
from tab in form.GetChildRows("Form_To_Tab")
select
new Tab
{
// and so on
}).ToList()
}).ToList();
答案 1 :(得分:1)
这里有一个将数据表转换为列表的示例,方法是选择所需的列:
var myData = ds.Tables[0].AsEnumerable().Select(r => new {
column1 = r.Field<string>("FormId")
});
var list = myData.ToList();
var myData2 = ds.Tables[1].AsEnumerable().Select(r => new {
column1 = r.Field<string>("TabId"),
});
var list2 = myData2 .ToList();