Как мне изменить этот запрос на linq на sql? - PullRequest
1 голос
/ 17 июня 2010

Запрос:

select emp.empname as Name, dep.depname as Department 
from Employee as emp 
inner join Department as dep on emp.depid=dep.depid 
where emp.id='2'

Как я могу изменить это на linq на sql?

Ответы [ 3 ]

3 голосов
/ 17 июня 2010
var id = 2;
var qry = from e in db.Employees
          where e.Id == id
          select new {
              Name = e.EmpName,
              Department = e.Department.DepName
          };

(предполагается, что родительская ассоциация между сотрудником и отделом определена в DBML)

и если вы ожидаете ровно одного такого:

var record = qry.Single();
Console.WriteLine(record.Name);
Console.WriteLine(record.Department);
1 голос
/ 17 июня 2010

Вот почему LINQ так хорош: нет никаких оснований даже объединяться с таблицей Departments, чтобы заставить ее работать:

from employee in db.Employees
where employee.id == 2
select new
{
    Name = employee.empname, 
    Department = employee.Department.depname
};
1 голос
/ 17 июня 2010

Приблизительно:

from e in dc.Employee
join d in dc.Department on e.depid equals d.depid
where e.id == '2'
select new
{
    Name = e.empname,
    Department = d.depname
}
...