3

データセットを次のように変更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<Form>データセットのデータを含むリストを作成する

List<Form> -> List<Tab> -> List<Section> -> List<Attributes>

IE: クラス フォームには のプロパティがありList<Tab>、クラス タブには のプロパティがありますList<Section>

私はのクラスを持っていますForm, Tab, Section, Attribute

クラスには、関連するデータテーブルのすべての列がプロパティとして含まれています

4

2 に答える 2

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();
于 2013-05-24T06:33:32.857 に答える
1

ここでは、必要な列を選択して、Datatable をリストに変換する例を示します。

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();
于 2013-05-24T06:18:49.900 に答える