2015-04-13 2 views
-1

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

мой SQL запрос

select SERVICESLASBYCOUNTRY.id,site.Name, SERVICESLASBYCOUNTRY.countrycode, sum(SERVICESLASBYCOUNTRYDETAILS.estddays) as estddays 
from SERVICESLASBYCOUNTRY 
inner join site on SERVICESLASBYCOUNTRY.SiteId = site.id 
inner join SERVICESLASBYCOUNTRYDETAILS on SERVICESLASBYCOUNTRY.id = SERVICESLASBYCOUNTRYDETAILS.servicelasbycountrykey 
where SERVICESLASBYCOUNTRY.servicecode = 234 
group by SERVICESLASBYCOUNTRYDETAILS.servicelasbycountrykey,site.Name, SERVICESLASBYCOUNTRY.countrycode,SERVICESLASBYCOUNTRY.id 

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

from s in db.SERVICESLASBYCOUNTRies 
           join si in db.sites on s.SiteId equals si.id 
           join sd in db.SERVICESLASBYCOUNTRYDETAILs on s.id equals sd.servicelasbycountrykey 
           where s.servicecode == servicecode 
           group sd by sd.estddays into bhh 
           select new SLACountryDTO       
           { 
            ID = s.id, 
            ServiceCode = s.servicecode, 
            CountryCode = s.countrycode, 
            SiteId = s.SiteId, 
            SiteName = si.Name, 
            Sum = bhh.Sum(sd => sd.estddays) 
           }); 

ошибка

"s" does not exist current context 
"si" does not exist current context 
+0

Какая у этого ошибка? – Richard

ответ

2

Просто нравится, как вы сделали grouping в вашем SQL запроса вам нужно сделать в запросе LINQ, так как это: -

from s in db.SERVICESLASBYCOUNTRies 
     join si in db.sites on s.SiteId equals si.id 
     join sd in db.SERVICESLASBYCOUNTRYDETAILs on s.id equals sd.servicelasbycountrykey 
     where s.servicecode == servicecode 
     group sd by new { sd.estddays, s.countrycode,s.servicecode,s.id,s.SiteId,si.Name } 
        into bhh 
     select new SLACountryDTO       
     { 
      ID = bhh.Key.id, 
      ServiceCode = bhh.Key.servicecode, 
      CountryCode = bhh.Key.countrycode, 
      SiteId = bhh.Key.SiteId, 
      SiteName = bhh.Key.Name, 
      Sum = bhh.Sum(sd => sd.estddays) 
     }); 
+2

спасибо, брату удалено –

0

Ваш В группе bhh есть ключ и коллекция элементов, вы должны пройти через этот объект, чтобы получить данные. s & si недопустимы в контексте вашей группы

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