2009-08-12 5 views
1

У меня есть запрос (развивается в LINQPad):Linq to Entities Left Outer Join/Subquery?

DateTime currentDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); 
DateTime previousMonth = currentDate.AddMonths(-1); 
DateTime previousMonthForAveragePrices = currentDate.AddMonths(-2); 


var help = from cd in CostDrivers.OfType<Commodity>() 
            where cd.isActive == true && 
            cd.arePricesCalculatedAverage == false 
            from cp in cd.CostDriverPrices where cp.priceDate 
== currentDate 
            select new {cd.costDriverID, cd.costDriverName, cd.isUpdatedMonthly, cd.arePricesCalculatedAverage, 
               cp.costDriverPriceID, priceDate = cp.priceDate, 
               cp.price, previousPriceDate = from cpc in cd.CostDriverPrices where cpc.priceDate == previousMonth 
               select new {previousPrice = cpc.price, previousPriceDate = cpc.priceDate}}; 

help.Dump();

Что мне нужно сделать, это вернуть ВСЕ costDrivers, независимо от того, существует ли запись цены на заданную дату (currentDate). Я должен указать, что в подзапросе есть попытка захватить другую рекордную цену за текущий месяц 1 месяц. Я пробовал || null и т.п. нет пойдите. Это linq для сущностей. Сам запрос работает .. он вернет результат только там, где есть цена. благодаря!

спасибо.

ответ

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