ठीक है तो मैं कोर्स मैपिंग टेबल में मौजूद दोनों पाठ्यक्रमों को सौंपी गई सभी कंपनियों को प्राप्त करने का प्रयास कर रहा हूं।क्या कोई भी इन 3 LINQ को SQL कथन में एक में कम कर सकता है?
पाठ्यक्रम मैपिंग तालिका में 2 एफके कोर्सआईड्स हैं, जो एक ही तालिका में दो अलग-अलग पाठ्यक्रमों को इंगित करते हैं।
प्रत्येक पाठ्यक्रम में एक बंडल होता है, और कंपनियों को बंडलों को सौंपा जाता है।
मैं उन सभी कंपनियों का चयन करने की कोशिश कर रहा हूं जो दोनों पाठ्यक्रमों से दोनों बंडलों को सौंपा गया है।
मैं यह करने में सक्षम हूं (संपादित करें: स्पष्ट रूप से नहीं, या तो कोई भी इसे ठीक कर सकता है?) 3 अलग-अलग LINQ प्रश्नों का उपयोग करके, लेकिन मुझे उम्मीद है कि इसे दोनों में से एक में कम करने का एक तरीका है संक्षिप्तता और प्रदर्शन:
Bundle vegasBundle = (from cm in db.VegasToPegasusCourseMaps
join c in db.Courses on cm.VegasCourseID equals c.CourseID
join b in db.Bundles on c.BundleID equals b.BundleID
where cm.VPCMapID == CourseMapID
select b).FirstOrDefault();
Bundle pegasusBundle = (from cm in db.VegasToPegasusCourseMaps
join c in db.Courses on cm.PegasusCourseID equals c.CourseID
join b in db.Bundles on c.BundleID equals b.BundleID
where cm.VPCMapID == CourseMapID
select b).FirstOrDefault();
IQueryable<Company> companyAssigned = from cb in db.CompanyBundles
join c in db.Companies on cb.CompanyID equals c.CompanyID
where cb.BundleID == vegasBundle.BundleID || cb.BundleID == pegasusBundle.BundleID
select c;
return companyAssigned.ToList();
ऐसा लगता है कि आपकी आखिरी क्वेरी उन कंपनियों को प्राप्त होगी जो * * * बंडल के बजाय * या तो * बंडल को सौंपा गया है। – CAbbott
@CAbbott मुझे लगता है कि आप सही हैं, इसे ठीक करने का कोई तरीका? – BigOmega