मुझे लगता है कि आप UserHasPackages तालिका में शामिल होना चाहते हैं क्योंकि आप किसी विशिष्ट उपयोगकर्ता के लिए परिणामों को फ़िल्टर करना चाहते हैं (मैंने अभी 'कुछ उपयोगकर्ता' डाला है क्योंकि मुझे यकीन नहीं है कि 'UserHasPackages.ApplicationUserId' कहां से आया है) क्योंकि यह दृश्य मॉडल में शामिल नहीं है।
मेरा मानना है कि निम्नलिखित की तरह कुछ काम करना चाहिए:
var list = context.Packages
.Join(context.Containers, p => p.ContainerID, c => c.ID, (p, c) => new { p, c })
.Join(context.UserHasPackages, pc => pc.p.ID, u => u.PackageID, (pc, u) => new { pc.p, pc.c, u })
.Where(pcu => pcu.u.UserID == "SomeUser")
.Select(pcu => new
{
pcu.p.ID,
pcu.c.Name,
pcu.p.Code,
pcu.p.Code2
});
आप क्वेरी सिंटैक्स का उपयोग करके भी ऐसा कर सकते हैं:
var query = from package in context.Packages
join container in context.Containers on package.ContainerID equals container.ID
join userHasPackage in context.UserHasPackages on package.ID equals userHasPackage.PackageID
where userHasPackage.UserID == "SomeUser"
select new
{
package.ID,
container.Name,
package.Code,
package.Code2
};