Я пытаюсь получить общее количество загрузок моего приложения за последние 30 дней на разных устройствах, мне удалось вернуть правильный запрос, группируя по количеству дней и присоединяясь к перечислимому с помощью последние тридцать дней. Однако я не могу отформатировать вывод так, как хочу. Поделится запрос первым с презентацией в LINQPadLinq DefaultValues on Join
var last_days = (from idx in Enumerable.Range(1, (DateTime.Now - DateTime.Now.AddDays(-30)).Days)
select new { day = DateTime.Now.AddDays(-30).AddDays(idx).Date});
var orders = (from od in Orders
group od by EntityFunctions.AddSeconds((DateTime?)new DateTime(1970,1,1,0,0,0,0), (int?)od.Created) into g
select new {
day = g.Key ,
web = g.Where(q => q.Source == "web").Count(),
ios = g.Where(q => q.Source == "ios").Count(),
android = g.Where(q => q.Source == "android").Count(),
total = g.Count()
}).OrderByDescending(q => q.day).Take(31);
var days=
(from d in last_days
join od in orders on d.day equals od.day into x
from od in x.DefaultIfEmpty()
select x);
days.Dump();
Это результат я получаю
Теперь я хочу, чтобы отформатировать окончательный вывод в IEnumerable 5 колонка (день , web, ios, android, total) независимо от того, был ли он пустым или нет. Поэтому вместо пустой знака O я получаю дату, а web = ios = android = total = 0. Как я могу это сделать? Итак, в день без каких-либо загрузок я до сих пор получаю запись с датой и платформами на 0.
СММ что является объектом DaySum? –
Вы можете назвать эти анонимные типы. DaySum - это мое представление о том, какова каждая строка этой коллекции, ежедневное резюме. –
Хм, я думаю, вам нужно сначала объявить этот класс. Я думаю, что это то, с чем я столкнулся, пытаясь объявить тип возвращаемого значения функции анонимным типом. –