Tôi có truy vấn LINQ về cơ bản đếm số lượng mục được tạo vào một ngày cụ thể, được thực hiện bằng cách nhóm theo năm, tháng, ngày. Vấn đề là bởi vì một số ngày sẽ không có bất kỳ mục nào tôi cần phải điền vào những "ngày theo lịch" bị thiếu với mục nhập là 0. Tôi đoán rằng điều này có thể có thể được thực hiện với một Liên minh hoặc một cái gì đó, hoặc thậm chí một số đơn giản cho vòng lặp để xử lý các bản ghi sau khi truy vấn.Điền ngày thiếu bằng cách sử dụng nhóm LINQ theo truy vấn ngày
Đây là truy vấn:
from l in context.LoginToken
where l.CreatedOn >= start && l.CreatedOn <= finish
group l by
new{l.CreatedOn.Year, l.CreatedOn.Month, l.CreatedOn.Day} into groups
orderby groups.Key.Year , groups.Key.Month , groups.Key.Day
select new StatsDateWithCount {
Count = groups.Count(),
Year = groups.Key.Year,
Month = groups.Key.Month,
Day = groups.Key.Day
}));
Nếu tôi có dữ liệu cho 12/1 - 2009/12/04 tương tự (giản thể):
12/1/2009 20
12/2/2009 15
12/4/2009 16
Tôi muốn một mục với 12/3/2009 0 được thêm bằng mã.
Tôi biết rằng nói chung điều này nên được thực hiện trong DB bằng cách sử dụng bảng không chuẩn hóa mà bạn cư trú với dữ liệu hoặc tham gia vào bảng lịch, nhưng câu hỏi của tôi là làm cách nào để thực hiện điều này trong mã?
Nó có thể được thực hiện trong LINQ không? Nó nên được thực hiện trong LINQ?
có thể trùng lặp của [LINQ nhóm theo ngày - bao gồm các ngày trống KHÔNG sử dụng tham gia] (http://stackoverflow.com/questions/17086120/linq-group-by-date-include-empty-days-without-using-join) – ensisNoctis