我正在尝试联合查询以创建一个XML文件。查询本身作为T-SQL工作,但我作为LINQ-TO-XML的实现失败,并显示“无法转换表达式...”错误。
我问错问题了吗?这种方法是完全错误的吗?我是LINQ的新手。如何从2个查询创建单个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))))发布于 2010-02-04 23:55:14
下面是我在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>这利用了XML文本,避免了对所有New XElement调用的需要。
发布于 2010-02-04 04:32:27
我认为你只需要做这样的事情。不确定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);https://stackoverflow.com/questions/2195119
复制相似问题