我正在编写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 };