2011-09-07 30 views
0

我有一個Linq列表,其中有數據多個表和這些表彼此相關。在這個列表中它有一些另外的表列表屬性。就像table1和table2有相互關係,我們在table1的列表中有一個數據,在這個列表中它有自動的table2數據。如何將Linq列表轉換爲數據集?

現在我想將此列表轉換爲XML,但它會引發錯誤,即循環引用錯誤,所以現在我想將此列表轉換爲數據集,並通過使用此數據集我可以生成一個XML。

因此,誰能爲我們提供的代碼來生成從列表中選擇多個表的數據集....

轉換列表中的XML代碼....

任何其他有用的評論............

+1

請提供一個樣本,列出對象在列表中的結構以及表格之間的關係。如果可能的話提供引發錯誤的當前代碼。 – scartag

+0

假設我有一個table1的列表,即lsttable1然後我可以調用table2字段屬性,像這樣:lsttable1.table2.propertyname ... –

+0

@Guarav Agrawal這個例子告訴我什麼。如果你使用Ef4,我會假定table2是lsttable1的導航屬性。但它浪費時間來承擔。請提供有關模型/關係的詳細信息,並且我們可以幫助您使用生成所需xml(或數據集)的擴展方法。 – scartag

回答

0

你真的沒有提供大量的信息來處理,但我會採取刺的基本答案。

鑑於這種階級結構:

public class Table1 
{ 
    public string Value; 
    public Table2 Table2; 
} 

public class Table2 
{ 
    public string Value; 
} 

我可以創建這個列表:

var lsttable1 = new List<Table1>() 
{ 
    new Table1() 
    { 
     Value = "Foo1", 
     Table2 = new Table2() 
     { 
      Value = "Bar1", 
     }, 
    }, 
    new Table1() 
    { 
     Value = "Foo2", 
     Table2 = new Table2() 
     { 
      Value = "Bar2", 
     }, 
    }, 
}; 

現在,我可能要將此轉換爲XML,看起來像這樣:

<Table1s> 
    <Table1 Value="Foo1"> 
    <Table2 Value="Bar1" /> 
    </Table1> 
    <Table1 Value="Foo2"> 
    <Table2 Value="Bar2" /> 
    </Table1> 
</Table1s> 

這是LINQ代碼:

var xd = 
    new XDocument(
     new XElement(
      "Table1s", 
      from t1 in lsttable1 
      select new XElement(
       "Table1", 
       new XAttribute("Value", t1.Value), 
       new XElement(
        "Table2", 
        new XAttribute("Value", t1.Table2.Value) 
       ) 
      ) 
     ) 
    ); 

這是你想要的那種東西嗎?