वहाँ एक उपकरण Linqer कहा जाता है मिल जाएगा, लेकिन सावधान रहें: एसक्यूएल से LINQ करने का लिप्यंतरण आप worst of both worlds दे सकते हैं।
उदाहरण के लिए, मान लीजिए कि आप $ 1000 की सभी खरीद या नकद में या वाशिंगटन में रहने वाले ग्राहकों द्वारा अधिक भुगतान करना चाहते हैं। SQL में क्वेरी यहां दी गई है:
SELECT p.*
FROM Purchase p
LEFT OUTER JOIN
Customer c INNER JOIN Address a ON c.AddressID = a.ID
ON p.CustomerID = c.ID
WHERE
(a.State = 'WA' || p.CustomerID IS NULL)
AND p.ID in
(
SELECT PurchaseID FROM PurchaseItem
GROUP BY PurchaseID HAVING SUM (SaleAmount) > 1000
)
LINQ पर इसका अनुवाद कैसे किया जाएगा? गलत तरीका लिप्यंतरण LINQ में क्वेरी, बाहरी और आंतरिक जुड़ने, सबक्वायरी और समूह खंड को पुन: पेश करने का प्रयास कर रहा है। सही तरीके से सीधे LINQ में आपकी मूल क्वेरी (अंग्रेजी में) मैप करने के लिए, डेटा और संघ संपत्तियों की LINQ के रैखिक प्रवाह का लाभ है:
मैं सभी खरीद चाहते हैं ...
from p in db.Purchases
.. .of $ 1000 या अधिक से अधिक ...
where p.PurchaseItems.Sum (pi => pi.SaleAmount) > 1000
... नकद में भुगतान ...
from p in db.Purchases
where p.PurchaseItems.Sum (pi => pi.SaleAmount) > 1000
where p.Customer == null || p.Customer.Address.State == "WA"
select p
अधिक जानकारी here:
where p.Customer == null
... या द्वारा ग्राहकों को जो वाशिंगटन
|| p.Customer.Address.State == "WA"
में रहते हैं यहाँ अंतिम क्वेरी है।
स्रोत
2012-09-03 00:41:00
एक उपकरण है: –
से नीचे मेरा उत्तर देखें यह प्रश्न भी देखें: http://stackoverflow.com/questions/296972/sql-to-linq-tool –