Je suppose que vous voulez rejoindre la table UserHasPackages parce que vous vouliez filtrer les résultats pour un utilisateur spécifique (je viens de mettre un 'SomeUser' parce que je ne sais pas d'où vient le 'UserHasPackages.ApplicationUserId') car il n'est pas inclus dans le modèle de vue.
Je pense que quelque chose comme ce qui suit devrait fonctionner :
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
});
Vous pouvez également le faire en utilisant la syntaxe de requête :
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
};