2013-07-04 107 views
1

UPDATE:

我已經把我的XML轉換ColdFusion的查詢表,所以這可能有助於解決這個問題。的LINQ to XML查詢到SQL

所以我的數據是:

[id] | [code] | [desc] | [supplier] | [name] | [price] 
------------------------------------------------------ 
1 | ABCDEF | "Tst0" | "XYZ" | "Test" | 123.00 
2 | ABCDXY | "Tst1" | "XYZ" | "Test" | 130.00 
3 | DCBAZY | "Tst2" | "XYZ" | "Tst2" | 150.00 

現在我需要的是什麼的LINQ to XML查詢下方輸出。輸出應該是這樣的(我會因此更容易對我來說,輸入JSON寫)這樣的:

[{ 
    "code": "ABCD", 
    "name": "Test", 
    "products": 
     { 
      "id": 1, 
      "code": "ABCDEF", 
      "desc": "Tst0", 
      "price": 123.00 
     }, 
     { 
      "id": 2, 
      "code": "ABCDXY", 
      "desc": "Tst1", 
      "price": 130.00 
     } 
}, 
{ 
    "code": "DCBA", 
    "name": "Tst2", 
    "products": 
     { 
      "id": 3, 
      "code": "DCBAZY", 
      "desc": "Tst2", 
      "price": 150.00 
     } 
}] 

正如你所看到的,通過「CODE」和第4個字符組「供應商」的代碼。

感謝


我會怎麼以下LINQ轉換爲XML查詢到SQL?

from q in query 
group q by new { Code = q.code.Substring(0, 4), Supplier = q.supplier } into g 
select new 
{ 
    code = g.Key.Code, 
    fullcode = g.FirstOrDefault().code, 
    supplier = g.Key.Supplier, 
    name = g.FirstOrDefault().name, 
    products = g.Select(x => new Product { id = x.id, c = x.code, desc = string.IsNullOrEmpty(x.desc) ? "Description" : x.desc, price = x.price }) 
} 

盡我所能想出:

SELECT c, supplier, n 
FROM products 
GROUP BY C, supplier, n 

不知道如何讓子查詢中存在或獲得的代碼串。

PS:這是對ColdFusion,所以我想他們的SQL版本可能是MS SQL不同..

+0

LINQ有什麼好處,它是一個更高的抽象級別,使得它更容易做到SQL中難以做到的事情。 – Steven

+4

只需附加一個SQL分析器並查看執行的SQL查詢。 – Steven

+0

查詢實際上是LINQ to XML,而不是數據庫。 – jzm

回答

0

最簡單的方法是武官探查到你的數據庫,看看查詢由LINQ生成到SQL引擎。