admin

LINQ转换与我的SQL查询给出的结果不同

sql

嗨,大家好,我有这个SQL查询(MSSQL),我正在做一个查询,其中联接的结果按日期提供了最新行的“顶部”行,而没有重复的结果,您可以在此处找到有关我所执行的操作的信息m正在执行http://goo.gl/Uv0FR事情是这样的,我已经完成了SQL查询,正在按预期工作,在子句“
where 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')

问题是当我尝试从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,
                  });

当我运行此linq2sql查询时,我得到重复的结果,而不是每个值只有1个。所以问题是,我想知道是否有人可以很好地将SQL查询转换为LINQ查询,或者指出错误在哪里。

提前致谢。


阅读 173

收藏
2021-06-07

共1个答案

admin

我没有找到解决问题的答案,所以我最后要做的是使用

db.ExecuteQuery<ObjectVO>(sqlQuery);

我知道这不是最佳做法,也无法解决为什么我的sql查询和linq查询没有得到相同结果集的问题,但是没有上一个答案。

另一件事是我的查询变得越来越复杂(新的业务逻辑要求),必须连接7表并搜索Max日期,并且移动是其中的一些,所以现在将查询转换为linq到sql变得更加复杂。

感谢您的支持。

2021-06-07