2013-04-13 3 views
0

У меня есть следующий код в запросе T-SQL, и мне нужно преобразовать его (переписать) в LINQ. Может кто-нибудь мне помочь? БлагодаряКак преобразовать T-SQL в LINQ

SELECT (select max(X.PocetDniPoPlatnosti) 
from 
(

select 

(select top 1 datediff(day,datumplatnosti,getdate()) from planrealizace p 
where p.cinnostsopidsop = cinnostsop.idsop and datumplatnosti <= getdate() and p.provest = 1 and p.datumprovedeni is null 
order by p.datumplatnosti desc) as PocetDniPoPlatnosti 

from cinnostsop 
where cinnostSOP.LegislativneVyznamna = 1 and (CinnostSOP.ObjektId = 131476)) X) as PoPlatnosti 
+3

Покажите нам [что *** вы *** пробовали до сих пор] (http://www.whathaveyoutried.com) - где вы застряли? –

+0

Вы посмотрели http://www.sqltolinq.com/downloads? –

+0

Я пробовал linquer, но это программное обеспечение не поддерживает какую-либо функцию, например, tariff, поэтому он не может преобразовать этот код. –

ответ

0

это должно работать, но я не мог попробовать это, как я не имею никаких инструментов программирования дома, так что не стесняйтесь, дайте мне знать, если это не работает, и мы можем улучшить его вместе

var max = (from cp in cinnostsop.Where(c => c.LegislativneVyznamna = 1 && c.ObjektId = 131476) 
      join p in (
       planrealizace. 
       Where(pz => pz.datumplatnosti <= DateTime.Now && 
          pz.provest = 1 and pz.datumprovedeni is null). 
       GroupBy(pz => pz.cinnostsopidsop, pz => pz). 
       Select(g => 
        new { 
          id = g.Key, 
          firstdate = (g.OrderByDescending(
               pz => pz.datumplatnosti). 
              First().datumplatnosti - DateTime.Now 
             ).Totaldays 
         }) 
       ) on cp.idsop equals p.id 
      select p.firstdate).Max(d => d); 
+0

new {cinnostsopidsop Я думаю, что здесь будет какая-то проблема, где я могу ее получить? –

+0

Должно быть хорошо, новый {cinnostsopidsop = g.Key} создает анонимный объект, обладающий свойством cinnostsopidsop, и его значение является ключом группы. Поскольку мы группируем pz.cinnostsopidsop, ключом для группы будет cinnostsopidsop. Если вы не совсем уверены, как работает этот синтаксис, просто анонимный объект google –

+0

Возможно, я должен дать ему новое имя, чтобы оно не было путаным. Проверьте ответ. –

Смежные вопросы