J'ai une requête (en développement LINQPad):Linq to Entities Left Outer Join/Sous-requête?
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();
Ce que je dois faire est de renvoyer TOUS les costDrivers indépendamment du fait qu'un enregistrement de prix existe à la date donnée (currentDate). Je devrais signaler qu'il y a une tentative de sous-requête pour saisir un autre record de prix pour un currentDate -1 mois. J'ai essayé || null etc. pas aller. C'est linq aux entités. La requête elle-même fonctionne .. elle ne retournera que le résultat là où il y a un prix. Merci!
merci.