不知道這是一種壞習慣還是一種行之有效的方式,但對於跨越一堆表的大型複雜報表查詢,我總是通過總結Case
聲明來獲得我的總體統計數據。什麼是LINQ相當於SUM(CASE當X = Y THEN 1 ELSE 0 END)?
例如:
SELECT Contact.Name,
SUM(CASE WHEN Order.Type = 'Special' THEN 1 ELSE 0 END) AS SpecialOrders,
SUM(CASE WHEN Order.Type = 'Magic' THEN 1 ELSE 0 END) AS MagicOrders,
FROM Contact
LEFT JOIN Order ON (Contact.ContactID = Order.ContactID)
我將如何做到這一點的LINQ to SQL的? (在vb.net,但我想任何.NET例如會做)
Dim Orders = _
From Order In DB.Orders
Select New With {.Name = Contact.Name,
.Special = If(Order.Type = "Special", 1, 0),
.Magical = If(Order.Type = "Magical ", 1, 0)}
我需要總結的.Special
和.Magical
值。
(在現實中,查詢跨越幾個表格組成的事件訂票信息,並總結記錄的決定或其中幾個不依賴於域)
這就是C#,OP正在尋找VB.Net等價物。 – JaredPar 2009-09-18 15:25:10
「在vb.net中,但我想任何.Net示例都會做」 - 這就是他所說的。恐怕我不會說VB。 – 2009-09-18 15:26:58
另外,這不會執行OP的sql查詢所做的連接。 – paqogomez 2015-10-15 22:13:15