SORU
6 Kasım 2010, CUMARTESİ


Nasıl SQL birden çok iç birleşim ETMENİZ dönüştürmek mi?

LINQ-to-SQL temelleri aşağı var, ama Katılır düzgün çalışması için almaya çalışırken zorlanıyorum. LINQ-to-SQL (bu benim tercih biçimi olarak ideal yöntem zincirleme kullanarak) aşağıdaki dönüştürmek için nasıl bilmek istiyorum.

SELECT      c.CompanyId, c.CompanyName,
            p.FirstName   ' '   p.LastName as AccountCoordinator,
            p2.FirstName   ' '   p2.LastName as AccountManager
FROM        dbo.Companies c
INNER JOIN  dbo.Persons p
ON          c.AccountCoordinatorPersonId = p.PersonId
INNER JOIN  dbo.Persons p2
ON          c.AccountManagerPersonId = p2.PersonId

CEVAP
6 Kasım 2010, CUMARTESİ


Sorgu sözdizimini kullanarak:

from c in dbo.Companies
join p in dbo.Persons on c.AccountCoordinatorPersonId equals p.PersonId
join p2 in dbo.Persons on c.AccountManagerPersonId equals p2.PersonId
select new
{
    c.CompanyId,
    c.CompanyName,
    AccountCoordinator = p.FirstName   ' '   p.Surname,
    AccountManager = p2.FirstName   ' '   p2.Surname
}

Zincirleme yöntemi kullanarak:

dbo.Companies.Join(dbo.Persons, 
                   c => c.AccountCoordinatorPersonId,  
                   p => p.PersonId,  
                   (c, p) => new 
                   {  
                       Company = c,  
                       AccountCoordinator = p.FirstName   ' '   p.Surname  
                   })
             .Join(dbo.Persons,  
                   c => c.Company.AccountManagerPersonId,  
                   p2 => p2.PersonId,  
                   (c, p2) => new 
                   {  
                       c.Company.CompanyId,  
                       c.Company.CompanyName,  
                       c.AccountCoordinator,  
                       AccountManager = p2.FirstName   ' '   p2.Surname 
                   });

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ammine Getahun

    Ammine Getah

    21 HAZİRAN 2011
  • jbignacio

    jbignacio

    13 Mart 2006
  • Marques Brownlee

    Marques Brow

    21 Mart 2008