繁体   English   中英

如何将此sql转换为Linq C#

[英]How to convert this sql to Linq C#

我有下面的sql我想使用linq转换为C#。 有人能告诉我如何用linq做到最好吗?

select A.field1, A.Field2, A.Field4,  A.Field5,  A.Field4 ,A.Field6
from MPhoneParts A

where A.Field3= 'Batteri' AND NOT EXIST(

select * from MPhoneParts B where 

B.Field3='cover'
A.Field2= B.Field2 AND 
A.Field4= B.Field4 AND
B.Field6='Production354')

干杯迈克

可能有更好的方法(很可能使用连接......),但是:

var query = from a in db.MPhoneParts
            where a.Field3 == "Batteri" &&
                  !db.MPhoneParts.Any(b => b.Field3 == "cover" &&
                                           a.Field2 == b.Field2 &&
                                           a.Field4 == b.Field4 &&
                                           b.Field6 == "Production354")
            select a;

我假设您的问题输入错误,您打算检查NOT IN子句。

这里是关于如何在linq中编写NOT IN ...的解决方案,希望这会有所帮助:

LINQ to SQL中的NOT IN子句

var qry =
    from a in db.PhoneParts
    where a.Field3 == "Batteri"
    && !db.PhoneParts.Any(b =>
             b.Field3 == "cover"
          && b.Field6 == "Production354"
          && b.Field2 == a.Field2
          && b.Field4 == a.Field4)
    select new { a.Field1, a.Field2, a.Field4, a.Field5, a.Field6 };

但想法:

  • Field1通过Field6可怕的名字
  • 您可以通过db.ExecuteQuery使用现有的SQL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM