如何将Linq列表转换为数据集?

时间:2011-09-07 14:48:02

标签: asp.net xml linq dataset linq-to-xml

我有一个Linq List,其中包含多个表的数据,这些表彼此相关。在此列表中,它具有另一个表列表属性。就像table1和table2彼此相关,我们在table1列表中有一个数据,在这个列表中它有自动table2数据。

现在我想将此List转换为XML但它会引发错误,即循环引用错误,所以现在我想将此列表转换为数据集,并且通过使用此数据集,我可以生成xml。

所以任何人都可以提供代码来从List中生成多个表数据集....

将列表转换为xml代码....

任何其他有用的评论............

1 个答案:

答案 0 :(得分: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)
                )
            )
        )
    );

这是你想要的那种吗?