LINQ转换不会提供与SQL查询相同的结果

ncu*_*ica 2 sql linq linq-to-sql

大家好我有这个SQL查询(MSSQL),我正在进行一个查询,其中连接的结果给了我最新行的"顶部"行,没有重复的结果,你可以在这里找到我的信息做http://goo.gl/Uv0FR事情是这样的,我已经完成了SQL查询,正如我所期待的那样工作,我为每个IDKEY使用了一行"在哪里pi.PlazaIe in ('','')没有重复

Select * from PlazaI pi
join (
    Select * from PlazaE pe where 
    NOT EXISTS(SELECT 1 FROM PlazaE pe1 
    WHERE pe.Id_plaza = pe1.Id_plaza AND pe1.Fecha > pe.Fecha AND pe1.Fecha < GETDATE() and pe1.Id_Emp != 0) 
) pe on pe.Id_plaza = pieepo.Id_plaza
join Emp e on pe.Id_Emp = e.Id_Emp
join View ct on ct.Id_Nodo = pe.id_nodo
where pi.PlazaIe in ('value1','value2')
Run Code Online (Sandbox Code Playgroud)

问题是当我试图从SQL转换为LINQ时,只是无法实现.(我是Linq这个世界的新人)

以下是我的linq查询.

var q1 = (from pe in db.PlazaEmpleados 
               where !db.PlazaEmpleados.Any
                                    (
                                     pe1 => (pe1.Id_plaza.Equals(pe.Id_plaza) && pe1.Fecha > pe.Fecha && pe1.Id_Emp != 0 && pe1.Fecha > DateTime.Now)
                                    ) select pe);

    var q2 = (from pi in db.Context
              join pe in (q1) on pi.Id_plaza equals pe.Id_plaza
                select new EmpVO
                  {
                    Id_Nodo = pe.id_nodo,
                    Id_plaza = pi.PlazaSome,
                    Num_Plaza = pi.Id_plaza,
                  }); 
Run Code Online (Sandbox Code Playgroud)

当我运行这个linq2sql查询时,我得到重复的结果,而不是每个值只有1.所以问题是,我想知道是否有人能够以良好的方式将SQL查询转换为LINQ查询或指向我错误的位置.

提前致谢.

CSh*_*pie 6

您对日期的检查有所不同:

LINQ:

pe1.Fecha > DateTime.Now
Run Code Online (Sandbox Code Playgroud)

SQL:

pe1.Fecha < GETDATE()
Run Code Online (Sandbox Code Playgroud)

不是你的LINQ应该是:

pe1.Fecha < DateTime.Now
Run Code Online (Sandbox Code Playgroud)