Linq to Entity, selecting group without value
===

I would like to be able to group all my data by months even if some months doesn't contain any data. At this moment, I can group but the data returned contain only months with data.

Here is how my code look like:


	var twelveMonthAgo = date.AddMonths(-12).Date;
	var twelveMonthAgoFirstOfMonth = new DateTime(twelveMonthAgo.Year, twelveMonthAgo.Month, 1, 0, 0, 0, 0);

	var data = (from i in Database.Users
				where i.RegisterDate >= twelveMonthAgoFirstOfMonth
				group i by new {y=i.RegisterDate.Year,m = i.RegisterDate.Month} into g
				select new UserStatistic{ Date = EntityFunctions.CreateDateTime(g.Key.y, g.Key.m, 1, 0, 0, 0)
										   , UserCount = g.Count(o => o.Id)
										 });

	//The code below is what I would like to remove											
	var toReturn = new List<UserStatistic>();
	var allData = data.ToList();
	DateTime datei = twelveMonthAgoFirstOfMonth;
	while (datei.Year<= date.Year && datei.Month<=date.Month){
		var info = allData.SingleOrDefault(x => x.Date.HasValue && x.Date.Value.Year == datei.Year && x.Date.Value.Month == datei.Month);
		toReturn.Add(info ?? new UserStatistic { Date = datei, UserCount = 0, PaymentPaid = 0 });
		datei = datei.AddMonths(1);
	}
	return toReturn.AsQueryable();   

As you can see, the code under the comments build a collection of the last 12 months and check if some data has been out of the database and fill up the collection if some exist, otherwise put 0.

How can I do all that without having to do the code below the comment?