Linq'de sol birleşimler hakkında SO hakkında çok fazla soru var ve hepsine baktığımda istediğim uca ulaşmak için join
anahtar sözcüğünü kullanın.Linq'de sola katıl?
Bu bana mantıklı gelmiyor. CustomerID
ile ve Invoice
tablolarına sahip olduğumu varsayalım. Şimdi müşteri bilgilerini içeren bir raporu ve ayrıca faturaları çalıştırmak istiyorum. SQL olacaktır: SO üzerinde cevapların gördüklerime, insanlar çoğunlukla öneriyorlar
select c.*, i.*
from Customer c
left join Invoice i on c.ID = i.CustomerID
Gönderen:
var q = from c in Customers
join i in Invoices.DefaultIfEmpty() on c.ID equals i.CustomerID
select new { c, i };
Gerçekten bu tek yol nasıl olabilir anlamıyorum. Customer
ve Invoice
arasındaki ilişki, LinqToSQL sınıfları tarafından zaten tanımlanmıştır; Neden join
maddesi için tekrarlamak zorundayım? Ben bir iç isteseydim basitçe olurdu katılmak: katılmış alanları belirtmeden
var q = from c in Customers
from i in c.Invoices
select new { c, i };
!
var q = from c in Customers
from i in c.Invoices.DefaultIfEmpty()
select new { c, i };
ancak bir iç birleşim sanki sadece bana aynı sonucu verdi:
denedim.Bunu yapmanın daha iyi bir yolu yok mu?
Beni havaya uçur - haklısın! Şimdi, neden bunun çalışmadığını düşündüm ...? Tamam, alçakgönüllü bir şekilde geri döndüm ... bu soru kendi yanlış anlamadığımdan kaynaklandı. TEŞEKKÜRLER! :) –