使用“IN” sql中的关键词。在LINQ中不知道如何做到这一点 [英] Using "IN" key word in sql. Don't know how to do this in LINQ

查看:127
本文介绍了使用“IN” sql中的关键词。在LINQ中不知道如何做到这一点的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,

这是我的SQL查询。

选择doc_id,title,document_category_code,doc_file

 来自flx_document

其中doc_id in(选择doc_id来自flx_help_doc,其中pl_id =& planId)

select doc_id, title, document_category_code, doc_file
 from flx_document
where doc_id in (select doc_id from flx_help_doc where pl_id = &planId)

我需要在LINQ中做同样的事情。

I need to do the same thing in LINQ.

我试过这个

 

 

 

 

{

hlpdoc.FlxDocument.DocId

hlpdoc.FlxDocument.DocId

})。ToList();

}).ToList();

queryResult =(

queryResult = (

 

 

&& helpDocs.Contains(doc.DocId)

&& helpDocs.Contains(doc.DocId)

 

 

{

doc.DocId,

doc.DocId,

PlanTitle =

PlanTitle =

doc.Title,

doc.Title,

DocumentType = doc.DocumentCategoryCode,

DocumentType = doc.DocumentCategoryCode,

doc.DocFile

doc.DocFile

})。ToList();

}).ToList();

但我收到编译错误"无法将lambda表达式转换为'string'类型,因为它不是委托类型"

< span style ="font-size:12pt; font-family:" Times New Roman"," serif"">有人能告诉我如何在LINQ中编写我的qery吗?

非常感谢。

推荐答案

您好Sandra6;

Hi Sandra6;

此单个查询将替换您拥有的两个查询,并且应该为您提供所需内容。

This single query will replace the two queries you have and should give you what you are looking for.


queryResult = 
    (from doc in ctx.FlxDocuments 
     where doc.DocumentCategoryCode == docCagetoryCode && 
       ctx.FlxHelpDocs.Where( p => p.PlId == planId)
                      .Select( dId => dId.FlxDocument.DocId).Contains(doc.DocId)
     orderby doc.Title, doc.DisplayOrder 
     select new 
     {
         doc.DocId,
         PlanTitle =  "plan title", 
         doc.Title,
         DocumentType = doc.DocumentCategoryCode,
         doc.DocFile
     }).ToList();


这篇关于使用“IN” sql中的关键词。在LINQ中不知道如何做到这一点的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆