किसी SQL क्वेरी मैं EF4.3परिवर्तित एक वाम बाहरी इकाई की रूपरेखा के लिए शामिल हों
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");
यहाँ करने के लिए परिवर्तित करना चाहते है सबसे अच्छा LINQ मैं के साथ आ सकता है:
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
};
मैं मुझे पता है कि मुझे अपना पहला जुड़ना (प्राधिकरण & प्रमाणीकरण के बीच) में विलय करने की आवश्यकता है, चलिए x कहें और डिफ़ॉल्ट IFEmpty लागू करें लेकिन वाक्यविन्यास नहीं बना सकते हैं।
संपादित करें: स्पष्टीकरण के लिए छवि:
किसी भी मदद अत्यधिक सराहना की जाएगी। सादर।
विवरण के लिए धन्यवाद। मैंने अपने प्रश्न में एक छवि संलग्न की है। कृपया देखें कि क्या यह मेरी स्थिति को स्पष्ट करता है। जवाब के लिए धन्यवाद। बहुत सराहना की। – DoomerDGR8
छवि को देखते हुए मुझे लगता है कि मैंने पोस्ट किया गया LINQ काम करेगा। यह आपको प्रमाणीकरण तालिका से सबकुछ देगा, साथ ही इस प्रमाणीकरण के लिए किसी मिलान करने वाले प्राधिकरण (यदि कोई है), साथ ही उन प्रमाणीकरणों के लिए किसी भी मिलान संगठन। –
आपको एक मामूली अपडेट की आवश्यकता हो सकती है: जैसा कि लिखा गया है, मेरा उत्तर उन प्राधिकरणों को वापस कर देगा जिनके पास कोई भी संगठन रिकॉर्ड नहीं है - एक आंतरिक जुड़ने के बजाय दूसरा बाएं-जॉइन। आपके डेटा मॉडल के आधार पर जो संभवतः हो सकता है या नहीं हो सकता है, आपको चिंता करने की आवश्यकता है; अगर यह एक चिंता है तो मुझे बताएं। –