Bunun sadece kötü bir alışkanlık mı, yoksa geçerli bir yöntem yapıp yapmadığına, ancak tabloların genişliğine ilişkin büyük karmaşık rapor sorguları için sık sık toplu istatistiklerimi aldığımdan, bir Case
bildirimini toplayarak elde ederim.SIN'e LINQ eşdeğeri nedir (CASE WHEN X = Y SON 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)
nasıl LINQ to SQL bu yapardın: Örneğin
? Ben .Special
ve .Magical
değerleri toplamak gerekir
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)}
(vb.net olarak, ama herhangi bir .Net örnek yapacağını tahmin).
(Gerçekte, sorgu pek çok olay rezervasyon bilgilerinden oluşan tablolar ve rekor toplamak kararı yayılıyorsa veya onlardan birkaç alanların bağlıdır)
Bu C#, OP, VB.Net eşdeğerini arıyor. – JaredPar
".net.net'de, ama sanırım herhangi bir .NET örneğini yapacak" - dedi. Korkarım ben VB konuşamıyorum. –
Ayrıca, bu OP'nin sql sorgusunun yaptığı birleştirme gerçekleştirmez. – paqogomez