我正在編寫LINQ to SQL語句,而且正在使用C#中帶有ON
子句的常規內部聯接的標準語法。 sql
您如何在LINQ to SQL中表示如下內容: ide
select DealerContact.* from Dealer inner join DealerContact on Dealer.DealerID = DealerContact.DealerID
實際上,一般最好不要加入linq。 有導航屬性時,一種很是簡潔的方式來編寫linq語句是: spa
from dealer in db.Dealers from contact in dealer.DealerContacts select new { whatever you need from dealer or contact }
它將轉換爲where子句: code
SELECT <columns> FROM Dealer, DealerContact WHERE Dealer.DealerID = DealerContact.DealerID
OperationDataContext odDataContext = new OperationDataContext(); var studentInfo = from student in odDataContext.STUDENTs join course in odDataContext.COURSEs on student.course_id equals course.course_id select new { student.student_name, student.student_city, course.course_name, course.course_desc };
學生和課程表具備主鍵和外鍵關係的地方 ci
一個最好的例子 get
表名稱: TBL_Emp
和TBL_Dep
it
var result = from emp in TBL_Emp join dep in TBL_Dep on emp.id=dep.id select new { emp.Name; emp.Address dep.Department_Name } foreach(char item in result) { // to do}
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();
使用LINQ聯接執行內部聯接。 io
var employeeInfo = from emp in db.Employees join dept in db.Departments on emp.Eid equals dept.Eid select new { emp.Ename, dept.Dname, emp.Elocation };