2014-11-26 4 views
0

Это мой рабочий TSQL. Я изо всех сил пытаюсь преобразовать это в LINQ и получить результаты в коллекции. Большое спасибо заранееПроблемы преобразования TSQL в приложение LINQ MVC

select p.CoreSPID as SPID, 
    sum(case when pp.PricingCategory = 'Water' and pp.WholesalePricing=0 then pp.FixedCharge end) RetailWaterFixed,sum(case when pp.PricingCategory = 'Water' and pp.WholesalePricing=0 then pp.VolumetricCharge end) RetailWaterVar 
from PremisePricings pp,Premises p 
and p.PremiseId = pp.PremiseId 
group by p.CoreSPID 

UNION 

select p.CoreSPID as SPID, 
    sum(case when pp.PricingCategory = 'Water' and pp.WholesalePricing=0 then pp.FixedCharge end) RetailWaterFixed,sum(case when pp.PricingCategory = 'Water' and pp.WholesalePricing=0 then pp.VolumetricCharge end) RetailWaterVar 
from PremiseMeteredPricings pp,Premises p,PremiseMeters pm 
and p.PremiseId = pm.PremiseId and pm.PremiseMeterId = pp.PremiseMeterId 
group by p.CoreSPID 
+0

Привет, спасибо, но я использую EF6 код первого MVC5 и просто хотел посмотреть, как запустить тот же запрос в синтаксисе LINQ. Группа и UNION идут – John

ответ

0

Если у вас есть какой-либо контроль над базой данных, самое простым решением является использование вида:

  1. Создать представление на основе вашего предоставленного кода SQL от вопроса
  2. Импорта представление в модели объекта
  3. использования новой модели объект, чтобы преобразовать элементы в список

Ваш код может выглядеть примерно так:

List<AllPricing> list = db.AllPricings.ToList(); 
0
 var uniondemo = (from p in dc. PremisePricings 
       select new { Filename = p.filename, Size = p.size }).Union(
       from k in dc. PremisePricings2 
       select new ({SPID=p.CoreSPID }) 
      .sum(case when pp.PricingCategory = 'Water' and pp.WholesalePricing=0 then 

     pp.FixedCharge end) as RetailWaterFixed,sum(case when pp.PricingCategory = 'Water' and 

     pp.WholesalePricing=0 then pp.VolumetricCharge end) as VolumetricCharge ; 
+0

Спасибо Джейсон Я попытался сделать этот подход работать, но не смог, синтаксис был несдержанным и долгое время пытался исправить, не зная, будет ли он работать. Теперь попытка вызова хранимой процедуры – John

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