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