C# 使用LINQ连接多个表
我正在尝试将此查询转换为LINQ查询:C# 使用LINQ连接多个表,c#,.net,linq,C#,.net,Linq,我正在尝试将此查询转换为LINQ查询: select proj.CustomerName, proj.projectid, ProjectNumber, oe.FullName, oe.Rate, oe.jobid, opj.BillRate, hours.Hours, hours.WeekStart from RMT_TaskEmployeeHours hours join OracleEmployees oe on hours.EmployeeNu
select proj.CustomerName, proj.projectid, ProjectNumber, oe.FullName, oe.Rate, oe.jobid, opj.BillRate, hours.Hours, hours.WeekStart
from RMT_TaskEmployeeHours hours
join OracleEmployees oe
on hours.EmployeeNumber = oe.EmployeeNumber
join OracleProjectTasks tasks
on hours.TaskId = tasks.TaskID
join OracleProjects proj
on tasks.ProjectID = proj.ProjectID
left join OracleProjectJobs opj
on opj.ProjectID = proj.ProjectID
and oe.jobid = opj.JobID
where oe.Office like '%san francisco%'
and opj.EndDate is null
and WeekStart > '2015-1-22' and WeekStart < '2015-2-19'
你为什么不试试呢
尝试查找Linqer的教程。这将帮助您开始将SQL写入LINQ。欢迎使用堆栈溢出!你能为你的问题补充更多细节吗?我们不知道您的数据或模式是什么样子。什么类型的LINQ?并请显示具有导航属性的类。用LINQ语法连接几乎是不必要的。什么,特别是你不知道怎么做?您正在努力将查询的哪一部分转换为LINQ?请在opj.projectd=proj.projectd和oe.jobid=opj.jobid上左键加入OracleProjectJobs opj,其中oe.Office(如“%san francisco%”和opj.EndDate)为空,WeekStart>“2015-1-22”WeekStart<'2015-2-19'你真的应该花更多的精力跟进评论。大多数评论都是来自那些真正想帮忙的人,但只是为了给出最好的答案而要求澄清。你只是重复了问题的一部分,作为对Servy评论的回应。您没有告诉任何关于导航属性的信息,而它们在这里是绝对必要的。也许你不知道什么是导航属性?好吧,尽管问吧。趁人们还在的时候抓住机会。这里的问题很快就被遗忘了。
var test = db.RMT_TaskEmployeeHours.
Join(
db.OracleEmployees,
hours => hours.EmployeeNumber,
oe => oe.EmployeeNumber,
(hours, oe) => new {hours, oe}).
Join(
db.OracleProjectTasks,
oh => oh.oe.
).