我想了解如何將LINQ-to-XML和LINQ-to-SQL查詢結合起來並執行連接。在內部連接的XML元素中對結果進行分組
具體來說,我有一個SQL表,其中包含城市,縣和州的信息,我可以查詢它與LINQ to SQL,但在同一個查詢中,我想加入具有相同的SQL行州和/或縣,並生成XML作爲輸出的一部分。
這裏是大約什麼我的表如下所示:
╔═════╦══════════════╦════════════════╦═══════╗
║ IDX ║ CITY ║ COUNTY ║ STATE ║
╠═════╬══════════════╬════════════════╬═══════╣
║ 1 ║ YAKUTAT ║ ALEUTIANS EAST ║ AK ║
║ 2 ║ city-1 ║ ALEUTIANS EAST ║ AK ║
║ 3 ║ city-2 ║ ALEUTIANS EAST ║ AK ║
║ 4 ║ city-3 ║ ALEUTIANS WEST ║ AK ║
║ 5 ║ city-4 ║ ALEUTIANS WEST ║ AK ║
║ 6 ║ city-5 ║ ALEUTIANS WEST ║ AK ║
║ 7 ║ xyz ║ ANCHORAGE ║ AK ║
║ 8 ║ abc ║ BETHEL ║ AK ║
║ 9 ║ lmnop ║ WYOMING ║ NY ║
║ 10 ║ pqrst ║ WARSAW ║ NY ║
║ 11 ║ defg ║ WARSAW ║ NY ║
╚═════╩══════════════╩════════════════╩═══════╝
這就是想什麼我我的XML輸出的樣子。我希望加入將同一縣的所有城市分組爲同一個縣節點下的節點,然後將所有縣作爲狀態節點的子節點進行分組。
<State>AK</State>
<County>ALEUTIANS EAST</County>
<City>YAKUTAT</City>
<City>city-1</City>
<City>city-2</City>
<County>ALEUTIANS WEST</County>
<City>city-3</City>
<City>city-4</City>
<City>city-5</City>
<County>ANCHORAGE</County>
<City>xyz</City>
<County>BETHEL</County>
<City>abc</City>
<State>NY</State>
<County>WYOMING</County>
<City>lmnop</City>
<County>WARSAW</County>
<City>pqrst</City>
<City>defg</City>
我有這個部分的工作,我能夠從我的數據庫成功地選擇行,我能寫輸出作爲XML,但我不能讓嵌套作爲子節點的市,縣數據狀態,我錯過了加入部分,並不清楚如何做到這一點。
XDocument xDoc = new XDocument(new XElement("States",
(from states in state.Database
select new XElement(new XElement("State",states.State),
new XElelment("County",states.County),
new XElelment("City",state.City))));
xDoc.Save("C:\\states.xml")
這是我得到的輸出。正如你所看到的,我在沒有層次結構的情況下獲得了數據庫中所有城市,州和縣的完整列表。
<State>AK</State>
<County>ALEUTIANS EAST</County>
<City>YAKUTAT</City>
<State>AK</State>
<County>ALEUTIANS EAST</County>
<City>city-1</City>
<State>AK</State>
<County>ALEUTIANS EAST</County>
<City>city-2</City>
<State>AK</State>
<County>ALEUTIANS WEST</County>
<City>city-3</City>
<State>AK</State>
<County>ALEUTIANS WEST</County>
<City>city-4</City>
....and so on..
ok我想知道爲什麼版主們關閉了這個問題,你是否認爲我會浪費我的時間在註冊後問一個修辭問題......我使用了來自不同職位的數據,這只是因爲與我的項目有關的數據有perosnal細節.... – user2141957 2013-03-07 21:04:52
@ user2141957這不是版主誰關閉你的問題,但社區的5個成員。關閉它的最可能的原因是因爲你確實沒有提出問題,或者至少是你寫這個問題的方式,所以很難弄清楚你問的是什麼。我認爲你的問題可能是可挽救的,但你需要提供一些澄清。具體來說,什麼是「國家」?它是一個集合嗎?你引用了一個SQL,但沒有跡象表明這是如何發揮作用的。 – psubsee2003 2013-03-08 00:51:11
@ user2141957我會做的一個建議是閱讀這個博客條目:[寫出完美的問題](http://tinyurl.com/so-hints)。這是一篇非常好的文章,由我們的一位最高級別的成員撰寫,就如何寫出一個很好的問題來獲得良好的答案。這是非常有幫助 – psubsee2003 2013-03-08 00:53:29