【问题标题】:how to convert a Linq List into a dataset?如何将 Linq 列表转换为数据集?
【发布时间】:2011-11-12 05:57:27
【问题描述】:

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

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

那么任何人都可以向我们提供代码以从列表中生成多个表数据集......

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

任何其他有用的 cmets............

【问题讨论】:

  • 请提供一个示例,说明列表中对象的结构以及表格之间的关系。如果可能,请提供引发错误的当前代码。
  • 假设我有一个 table1 列表,即 lsttable1 然后我可以像这样调用 table2 字段属性:lsttable1.table2.propertyname...
  • @Guarav Agrawal 这个例子什么也没告诉我。如果您使用的是 Ef4,我会假设 table2 是 lsttable1 的导航属性。但是假设它是浪费时间。请提供模型/关系的详细信息,我们可能会帮助您使用生成所需 xml(或数据集)的扩展方法。

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


【解决方案1】:

你确实没有提供很多信息来处理,但我会尝试一个基本的答案。

给定这个类结构:

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)
                )
            )
        )
    );

这是你想要的吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2012-02-17
    • 2018-12-16
    • 1970-01-01
    相关资源
    最近更新 更多