C# 我需要帮助将SQL语句转换为C LINQ

C# 我需要帮助将SQL语句转换为C LINQ,c#,sql,linq,sql-to-linq-conversion,C#,Sql,Linq,Sql To Linq Conversion,我需要在LINQ C代码中转换此Select语句的帮助 在何处使用嵌套的Any应该执行此工作 context.Tags.Where( x => context.PresentationTags.Any( y => y.PresentationId == 2 && x.TagId == y.TagId ) ).Select(x => x.TagName); 我想知道您的SQL是否经过深思熟虑。就性能而言,看起来你应该进行内部连接而

我需要在LINQ C代码中转换此Select语句的帮助

在何处使用嵌套的Any应该执行此工作

context.Tags.Where(
    x => context.PresentationTags.Any(
        y => y.PresentationId == 2 && x.TagId == y.TagId
    )
).Select(x => x.TagName);

我想知道您的SQL是否经过深思熟虑。就性能而言,看起来你应该进行内部连接而不是子选择。到目前为止你做了哪些尝试?@bradbury9这是不准确的。IN查询并不总是等同于JOIN查询,查询优化器通常足够聪明,可以在它们相等时创建相同的执行计划。有关更多详细信息,请阅读我建议查看的内容:对于未来的查询,如果您的PresentationTags和标记在模型中相关,您可以从标记中的t执行操作,其中t.PresentationTags.PresentationId==2选择t.TagName。请注意,我并没有将此添加为答案,因为我缺少有关您的模型的信息。希望您不介意重新格式化-当您不必滚动时,它更易于阅读。
context.Tags.Where(
    x => context.PresentationTags.Any(
        y => y.PresentationId == 2 && x.TagId == y.TagId
    )
).Select(x => x.TagName);