如何在xml上编写外连接查询linq [英] How to write outer join query linq on xml
本文介绍了如何在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屋!
查看全文