Vb.net 使用UNION的LINQ-TO-XML

Vb.net 使用UNION的LINQ-TO-XML,vb.net,linq-to-xml,Vb.net,Linq To Xml,我正在尝试联合查询来创建一个XML文件。查询本身作为T-SQL工作,但我作为LINQ-TO-XML的实现失败,出现“无法转换表达式…”错误 我问错问题了吗?这种方法完全错误吗?我是LINQ的新手。如何从两个查询中创建一个XML Dim db As New SOMEDataContext Dim members As New XElement("members", _ (From c In db.Employees _ Join cf In db.BowlingTeams On

我正在尝试联合查询来创建一个XML文件。查询本身作为T-SQL工作,但我作为LINQ-TO-XML的实现失败,出现“无法转换表达式…”错误

我问错问题了吗?这种方法完全错误吗?我是LINQ的新手。如何从两个查询中创建一个XML

Dim db As New SOMEDataContext

Dim members As New XElement("members", _
    (From c In db.Employees _
    Join cf In db.BowlingTeams On c.ID Equals cf.BowlingTeam_Text _
        Where c.DEPARTMENT = "Housewares" _
            Select New XElement("member", _
                New XElement("id", c.ID), _
                New XElement("title", c.TITLE))) _
    .Union(From e In db.Employees _
        Where e.DEPARTMENT = "Housewares" _
        Where e.POSITION Like "*XYZ*" _
            Select New XElement("member", _
                New XElement("id", e.ID), _
                New XElement("title", e.TITLE))))

我想你只需要做这样的事情。不确定VB语法是否正确

   Dim query As From c In db.Employees Join cf In db.CourseFaculties On c.ID Equals cf.COURSEFACULTY_Text Where c.DEPARTMENT = "Housewares" Select New XElement("member", _
       New XElement("id", c.ID), New XElement("title", c.TITLE))).Union(From e In db.DATATEL_Employees Where e.DEPARTMENT = "Housewares" Where e.POSITION Like "*XYZ*" _
       Select New XElement("member", New XElement("id", e.ID), New XElement("title", e.TITLE)));

   Dim members As New XElement("members");
   foreach (XElement result in query)
       members.Add(result);

我想你只需要做这样的事情。不确定VB语法是否正确

   Dim query As From c In db.Employees Join cf In db.CourseFaculties On c.ID Equals cf.COURSEFACULTY_Text Where c.DEPARTMENT = "Housewares" Select New XElement("member", _
       New XElement("id", c.ID), New XElement("title", c.TITLE))).Union(From e In db.DATATEL_Employees Where e.DEPARTMENT = "Housewares" Where e.POSITION Like "*XYZ*" _
       Select New XElement("member", New XElement("id", e.ID), New XElement("title", e.TITLE)));

   Dim members As New XElement("members");
   foreach (XElement result in query)
       members.Add(result);

下面是我在VB中的实现方法:

    Dim members = <members>
                      <%= From c In db.Employees _
                          Join cf In db.BowlingTeams On c.ID Equals cf.BowlingTeam_Text _
                          Where c.DEPARTMENT = "Housewares" _
                          Select <member>
                                     <id><%= c.ID %></id>
                                     <title><%= c.TITLE %></title>
                                 </member> %>
                      <%= From e In db.Employees _
                          Where e.DEPARTMENT = "Housewares" _
                          Where e.POSITION Like "*XYZ*" _
                          Select <member>
                                     <id><%= e.ID %></id>
                                     <title><%= e.TITLE %></title>
                                 </member> %>
                  </members>
Dim成员=

这利用了XML文本,从而避免了所有
新XElement
调用的需要。

以下是我在VB中的实现方法:

    Dim members = <members>
                      <%= From c In db.Employees _
                          Join cf In db.BowlingTeams On c.ID Equals cf.BowlingTeam_Text _
                          Where c.DEPARTMENT = "Housewares" _
                          Select <member>
                                     <id><%= c.ID %></id>
                                     <title><%= c.TITLE %></title>
                                 </member> %>
                      <%= From e In db.Employees _
                          Where e.DEPARTMENT = "Housewares" _
                          Where e.POSITION Like "*XYZ*" _
                          Select <member>
                                     <id><%= e.ID %></id>
                                     <title><%= e.TITLE %></title>
                                 </member> %>
                  </members>
Dim成员=
这利用了XML文本,避免了所有
新XElement
调用