Saya berasumsi bahwa Anda ingin bergabung dengan tabel UserHasPackages karena Anda ingin memfilter hasil untuk pengguna tertentu (saya baru saja memasukkan 'SomeUser' karena saya tidak yakin dari mana 'UserHasPackages.ApplicationUserId' berasal) sejak itu tidak disertakan pada model tampilan.
Saya percaya sesuatu seperti berikut ini akan berhasil:
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
});
Anda juga dapat melakukan ini menggunakan sintaks kueri:
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
};