Linq to SQL "IN"条款无效
本文关键字:quot 无效 IN Linq to SQL | 更新日期: 2023-09-27 18:06:57
我有SQL查询为:
select a.id, a.lastName + ',' + a.firstName FullName
from account a
where a.id in(
select a.EH_PP_TE_TeacherAcctID
from EH_PP_TeacherEvaluations a
inner join EH_PP_TeacherEvaluationStatusesRefTable b
on a.EH_PP_TESRT_TeacherEvalStatusIDEH = b.EH_PP_TESRT_TeacherEvalStatusID
where b.EH_PP_TESRT_TeacherEvalStatusValue = 1)
and a.id = '57DB0B08-4C58-4301-AB92-090D4D9B7DA5'
我想在LINQ中翻译它。
阅读以下答案:
LINQ与SQL的"IN"关键字
我做了如下查询:
List<Entity.Observations> outerList = new List<Entity.Observations>();
outerList = (
from a in context.accounts
where
(
from c in context.EH_PP_TeacherEvaluations
join b in context.EH_PP_TeacherEvaluationStatusesRefTables on c.EH_PP_TESRT_TeacherEvalStatusIDEH equals b.EH_PP_TESRT_TeacherEvalStatusID
where b.EH_PP_TESRT_TeacherEvalStatusValue == 1
).Any()
select new Entity.Observations
{
EH_PP_TeacherAcctId = Convert.ToString(a.account.id)
}
).ToList<Entity.Observations>();
但是它给我的错误是:
body必须以select子句或group子句(at Any())结束
请帮助我如何改进这个查询??
I am new with Linq.
每个嵌套查询都需要以select语句结束,以获得您正在寻找的结果。如果没有select,将不会返回任何内容。
与SQL的直接转换将类似于这样:(我不做内部连接,但你可以很容易地弄清楚)
from a in context.Accounts
where a.Id == "57DB0B08-4C58-4301-AB92-090D4D9B7DA5" &&
context.EH_PP_TeacherEvaluations.Join(.......)
.Any(tv=>tv.EH_PP_TE_TeacherAcctID == a.Id)
select new {Id = a.Id, FullName = a.lastName + "," + a.firstName}
请注意,应该有更好的方法来做IN
使用LINQ中的关系。