Sql server 是否可以将此sql查询实现到linq

Sql server 是否可以将此sql查询实现到linq,sql-server,linq,tsql,sql-to-linq-conversion,Sql Server,Linq,Tsql,Sql To Linq Conversion,在linq中连接表时遇到问题,因为我正在检查模板集合表中是否存在templateSetId 查询: select vc.RowID, Choice_Text, VCE.[Goto] from ropes.Validation_Choices vc left outer join ropes.Validation_Condition_Expression VCE on VCE.ChoiceID = vc.RowID and TemplateSetID

在linq中连接表时遇到问题,因为我正在检查模板集合表中是否存在templateSetId

查询:

select 
    vc.RowID, Choice_Text, VCE.[Goto] 
from 
    ropes.Validation_Choices vc
left outer join 
    ropes.Validation_Condition_Expression VCE 
      on VCE.ChoiceID = vc.RowID and TemplateSetID in 
                                     (select RowID 
                                      from ropes.Validation_Templates_Set 
                                      where TemplateID = 66)
where 
   vc.QuestionID = 81 
此查询返回3行


移动templatesetid的筛选器会导致错误运算符“&&”不能应用于“int”和“bool”类型的操作数 我能做的最好的就是这个

from tc in _context.ValidationChoice
     join vce in _context.ValidationConditionExpression
     on tc.ChoiceId equals (int)vce.ChoiceID into lfc
     from lf in lfc.DefaultIfEmpty()
     where  tc.QuestionID == questionId &&
     (from ts in _context.ValidationTemplateSet where ts.TemplateID == templateId     select ts.TemplateSetId).Contains((int)lf.TemplateSetID)


                                 select new TemplateChoiceDTO
                                 {
                                     ChoiceId = tc.ChoiceId,
                                     ChoiceText = tc.ChoiceText,
                                     NextQuestionId = lf.Goto

                                 };
这相当于:

 select vc.RowID,Choice_Text,VCE.[Goto] from ropes.Validation_Choices vc
    left outer join ropes.Validation_Condition_Expression VCE on 
    VCE.ChoiceID = vc.RowID 
    where vc.QuestionID = 81 
    and TemplateSetID in (select RowID from ropes.Validation_Templates_Set where TemplateID = 66)

此查询返回1行,因为templatesetid的筛选器已移到外部

问题是什么?看起来它也应该这样做。我认为两个SQL查询的查询计划都是相同的。移动templatesetid的筛选器会给我一个错误运算符“&&”不能应用于“int”和“bool”@GertArnold类型的操作数SQL中的第一个查询返回3个值,而第二个值返回1个值,我的问题是是否可以转换select vc.RowID,Choice_Text,VCE。[转到]from ropes.Validation_Choices vc left outer join ropes.Validation_Condition_Expression VCE on VCE.ChoiceID=vc.RowID和TemplateSetID中的select RowID from ropes.Validation_Templates_Set其中TemplateID=66其中vc.QuestionID=81请将此添加到您的问题中。