如何在LINQ

时间:2017-04-28 11:15:51

标签: vb.net linq

我定义了两个类"表"和"列"。我正在尝试使用层次结构表>列生成XML。我已经为此编写了以下代码。这是Table类中的函数。

Public Function GetXmlTree() As XElement
    Dim ColumnNode As XElement = _
        <Table>
            <Name><%= ObjTable.Name %></Name>
            <Columns>
                <%= From col As SqlColumn In Columns _
                    Select col.GetXmlTree() %>
            </Columns>
        </Table>
    Return ColumnNode
End Function

当我调用Column类中存在的函数GetXmlTree时,此代码给出了以下错误,即此部分 col.GetXmlTree()。为什么将函数视为变量。

col.GetXmlTree()函数也返回一个XmlElement。

  

错误:   范围变量&#39; GetXmlTree&#39;将变量隐藏在封闭块中或   先前在查询表达式中定义的范围变量。

1 个答案:

答案 0 :(得分:1)

如果没有完整的代码,很难测试,但请尝试在Select子句中指定一个名称:

Public Function GetXmlTree() As XElement
    Dim ColumnNode As XElement = _
        <Table>
            <Name><%= ObjTable.Name %></Name>
            <Columns>
                <%= From col As SqlColumn In Columns _
                    Select x = col.GetXmlTree() %>
            </Columns>
        </Table>
    Return ColumnNode
End Function