嗨,大家好,我有这个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查询,或者指出错误在哪里。
提前致谢。
我没有找到解决问题的答案,所以我最后要做的是使用
db.ExecuteQuery<ObjectVO>(sqlQuery);
我知道这不是最佳做法,也无法解决为什么我的sql查询和linq查询没有得到相同结果集的问题,但是没有上一个答案。
另一件事是我的查询变得越来越复杂(新的业务逻辑要求),必须连接7表并搜索Max日期,并且移动是其中的一些,所以现在将查询转换为linq到sql变得更加复杂。
感谢您的支持。