首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UNION实现LINQ-TO-XML

使用UNION实现LINQ-TO-XML
EN

Stack Overflow用户
提问于 2010-02-04 04:19:13
回答 2查看 762关注 0票数 1

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

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

代码语言:javascript
复制
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))))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-04 23:55:14

下面是我在VB中如何做到这一点:

代码语言:javascript
复制
    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>

这利用了XML文本,避免了对所有New XElement调用的需要。

票数 1
EN

Stack Overflow用户

发布于 2010-02-04 04:32:27

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

代码语言:javascript
复制
   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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2195119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档