Reputation:
I am trying to join tables using two conditions in my on clause but I get the error
Operator && cannot be applied to operands of type byte and byte
How can I use multiple conditions in the ON clause for joining tables?
using (var db = new ReleaseInfo())
{
lvReleaseInfo = (from r in db.ReleaseTranslations
join c in db.Countries
on r.SectionRelease.ReleaseCountryID equals c.CountryID && c.CultureID equals CultureID
join pf in db.Platforms
on r.SectionRelease.PlatformID equals pf.PlatformID && pf.PlatformID equals CultureID
join pub in db.Publishers
on r.SectionRelease.PublisherID equals pub.PublisherID && pub.CultureID equals CultureID
where r.ReleaseID == SectionID && r.CultureID == CultureID
}
Upvotes: 2
Views: 3239
Reputation: 116528
You can create an anonymous type for each side of the equi-join:
lvReleaseInfo = (from r in db.ReleaseTranslations
join c in db.Countries
on new {CountryID = r.SectionRelease.ReleaseCountryID, CultureID} equals new {c.CountryID, c.CultureID}
join pf in db.Platforms
on new {r.SectionRelease.PlatformID, CultureID} equals new {pf.PlatformID, CultureID = pf.PlatformID}
join pub in db.Publishers
on new {r.SectionRelease.PublisherID, r.CultureID} equals new {pub.PublisherID, pub.CultureID}
where r.ReleaseID == SectionID && r.CultureID == CultureID
Upvotes: 1