Ich schreibe eine LINQ to SQL-Anweisung, und ich bin nach der Standard-Syntax für eine normale innere Verbindung mit einer "ON"-Klausel in C#.
Wie stellen Sie das Folgende in LINQ to SQL dar:
select DealerContact.*
from Dealer
inner join DealerContact on Dealer.DealerID = DealerContact.DealerID
Sie lautet in etwa so:
from t1 in db.Table1
join t2 in db.Table2 on t1.field equals t2.field
select new { t1.field2, t2.field3}
Es wäre schön, wenn Sie sinnvolle Namen und Felder für Ihre Tabellen hätten, um ein besseres Beispiel zu haben :)
Update
Ich denke, dass dies für Ihre Anfrage besser geeignet ist:
var dealercontacts = from contact in DealerContact
join dealer in Dealer on contact.DealerId equals dealer.ID
select contact;
Da Sie nach den Kontakten und nicht nach den Händlern suchen.
var results = from c in db.Companies
join cn in db.Countries on c.CountryID equals cn.ID
join ct in db.Cities on c.CityID equals ct.ID
join sect in db.Sectors on c.SectorID equals sect.ID
where (c.CountryID == cn.ID) && (c.CityID == ct.ID) && (c.SectorID == company.SectorID) && (company.SectorID == sect.ID)
select new { country = cn.Name, city = ct.Name, c.ID, c.Name, c.Address1, c.Address2, c.Address3, c.CountryID, c.CityID, c.Region, c.PostCode, c.Telephone, c.Website, c.SectorID, Status = (ContactStatus)c.StatusID, sector = sect.Name };
return results.ToList();
Verwenden Sie den Operator Linq Join:
var q = from d in Dealer
join dc in DealerConact on d.DealerID equals dc.DealerID
select dc;