Ben en iyi LINQ ben ile gelebilir edilir Burada EF4.3İdare Framework için JOIN İşte
command = database.GetSqlStringCommand(@"
select
H.AUTHENTICATION_ID,
USERNAME,
PERMISSIONS,
ORGANIZATION_IDENTIFIER,
O.ORGANIZATION_ID
from
AUTHENTICATION H
left join [AUTHORIZATION] T on H.AUTHENTICATION_ID=T.AUTHENTICATION_ID
join ORGANIZATION O on O.ORGANIZATION_ID = T.ORGANIZATION_ID
order by H.AUTHENTICATION_ID");
dönüştürmek istediğiniz SQL sorgusu geçerli:
var query = from h in context.Authentications
join t in context.Authorizations on h.AuthenticationId equals t.Authentications.AuthenticationId
join o in context.Organizations on t.Organizations.OrganizationId equals o.OrganizationId
orderby
h.AuthenticationId
select new
{ AUTHENTICATION_ID = (Int16?)h.AuthenticationId,
h.Username,
t.Permissions,
o.OrganizationIdentifier,
OrganizationID = (Int16?)o.OrganizationId
};
I ilk katılımımı (& Kimlik Doğrulamaları arasında) birleştirmem gerektiğini biliyorum, x diyelim ve DefaultIfEmpty'yi uygulayalım ama sözdizimini yapamayız.
DÜZENLEME: açıklama için Resim: Herhangi bir yardım son derece takdir edilecektir
. Saygılarımızla.
Ayrıntılar için teşekkürler. Soruma bir resim ekledim. Durumumu açıklığa kavuşturup koymadığına bakın. Cevabınız için teşekkürler. Çok takdir edildi. – DoomerDGR8
Bence yayınlanan LINQ çalışacağını düşünüyorum. Size, Kimlik Doğrulama tablosundan, ayrıca bu Kimlik Doğrulama için eşleşen herhangi bir Yetkilendirmeden (varsa) ve bu Kimlik Doğrulamaların eşleşen tüm Kuruluşlarından size her şeyi verecektir. –
İhtiyacınız olabilecek bir küçük güncelleme: yazılı olarak yanıtım, eşleşen bir Kuruluş kaydına sahip olmayan Yetkilendirmeler - bir iç birleştirme yerine ikinci bir sol birleştirme döndürecektir. Veri modelinize bağlı olarak bir olasılık olabilir veya olmayabilir, endişelenmeniz gerekir; bu bir endişe varsa bana bildirin. –