以下是我的SQL查询并希望处于LINQ中。任何人都可以帮忙吗?将SQL查询转换为LINQ
SELECT EmpId,Team,_Year FROM Plan
where EmpId in
(
select EmpId from master where 2150 in (immediatesupervisor,manager)
)
以下是我的SQL查询并希望处于LINQ中。任何人都可以帮忙吗?将SQL查询转换为LINQ
SELECT EmpId,Team,_Year FROM Plan
where EmpId in
(
select EmpId from master where 2150 in (immediatesupervisor,manager)
)
我建议你使用联接操作这样
YourDbEntities db = new YourDbEntities();
var query = from c in db.Plan
join d in db.master on c.EmpId equals d.EmpId
where d.ImmediateSupervisor == 2150 || d.Manager == 2150
select new{
c.EmpId,
c.Team,
c._Year
};
c#中不允许使用所有数字标识符。我认为'2150'是一个字面值,而不是一个成员。我假设_immediatesupervisor_和_manager_是表格成员...... – KristoferA 2010-10-04 06:57:35
谢谢......我差点离开那个2150.我已经纠正了我的答案。 – Haekal 2010-10-04 07:27:21
尝试:
var q =
from p in dc.Plan
where (
from m in dc.Master
where m.ImmediateSupervisor == 2150
|| m.Manager == 2150
select m.EmpId
).Contains(p.EmpId)
select new { p.EmpId, p.Team, p._Year };
常用LINQ语法一个很好的资源是达明卫队的LINQ到SQL“作弊片'。这是一个单页,你可以快速查找这样的事情。请参阅http://damieng.com/blog/2009/08/12/linq-to-sql-cheat-sheet
这是什么数据库?我不知道任何数据库的代码可以工作(尤其是在'immediatesupervisor,manager'位中的2150) – 2010-10-04 05:52:41
忘记了LINQ,请先尝试并写入正确的SQL。 – RPM1984 2010-10-04 05:53:21
@Dean它可能是SQL Server,因为问题标有'linq-to-sql'。如果_master_有一个名为_immediatesupervisor_的列和一个名为_manager_的SQL查询应该工作的列。它不应该有什么具体原因? – KristoferA 2010-10-04 07:01:26