如何在xml上编写外连接查询linq [英] How to write outer join query linq on xml

查看:95
本文介绍了如何在xml上编写外连接查询linq的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个元素



I have tow xelement

<attribute name="VSProductId">
  <value id="1022693402">1022693402</value>
  <value id="1022616704">1022616704</value>
  <value id="1013246990">1013246990</value>
  <value id="1013017642">1013017642</value>
</attribute>

<attribute different="true" name="Manufacturer">
  <value id="1022693402">OKI Data</value>
  <value id="1013246990">Panasonic</value>
  <value id="1013017642">Printek, Inc</value>
</attribute>





我想在linq中编写外连接查询,其结果如





I want to write outer join query in linq which gives the result like

<attribute different="true" name="Manufacturer">
  <value id="1022693402">OKI Data</value>
  <value id="1022616704"></value>
  <value id="1013246990">Panasonic</value>
  <value id="1013017642">Printek, Inc</value>
</attribute>





请在linq中给我一个外连接查询。



Please give me a outer join query in linq.

推荐答案

RyanDev是对的。你必须尝试做点什么!



我建议从这里开始:

高级查询技术(LINQ to XML) [ ^ ]

LINQ to XML:加入Xml数据 [ ^ ]
RyanDev is right. You have to try to do something!

I'd suggest to start here:
Advanced Query Techniques (LINQ to XML)[^]
LINQ to XML : Join Xml Data[^]


我发现查询给出了上面要求的结果,查询是这样的



var ElementQuery =(来自VSProd in VSProductIds.Descendants(value)

加入Element.Descendants中的EProd(value)

on(string)VSProd.Attribute(id)equals(string)EProd.Attribute(id)进入EVSProd
来自EP的
EVSProd.DefaultIfEmpty()

选择新的XElement(EP == null? new XElement(value,

new XAttribute(id,(string)VSProd.Attribute(id)),

string.Empty):EP)

);
I found query which gives the above required result the query is like this

var ElementQuery = (from VSProd in VSProductIds.Descendants("value")
join EProd in Element.Descendants("value")
on (string)VSProd.Attribute("id") equals (string)EProd.Attribute("id") into EVSProd
from EP in EVSProd.DefaultIfEmpty()
select new XElement(EP==null ? new XElement("value",
new XAttribute("id", (string)VSProd.Attribute("id")),
string.Empty) : EP)
);


这篇关于如何在xml上编写外连接查询linq的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆