假设:
var memberships = context.Memberships.OrderBy("it.CreateDate").ToList();
var monthlyCounts = from m in memberships
where m.CreateDate >= today.AddDays(-365) && m.CreateDate <= today
group m by m.CreateDate.Month
into g
select new
{
MemberCount = g.Count(m => m.UserId != null),
MembershipDate = g.Key,
};
我正试图加入一个月份列表:
var months = Enumerable.Range(0, (d1.Year - d0.Year) * 12 + (d1.Month - d0.Month + 1))
.Select(m => new DateTime(d0.Year, d0.Month, 1).AddMonths(m).Month);
这就是我提出的:
var cumlativeCounts = from d in months
join m in monthlyCounts on d equals m.MembershipDate into ms
from m in ms.DefaultIfEmpty()
select new
{
Month = d,
Count = m.MemberCount
};
问题是我得到'对象引用没有设置为对象的实例'异常,大概是在m.MemberCount上
当我只使用Count = m然后我从monthlyCounts匿名类型中获取所有属性,这不是我想要的。
是否有另一种方法可以外连接两个匿名类型并引用连接查询中的单个属性?
提前致谢。
答案 0 :(得分:1)
你可以写
m == null ? 0 : m.MemberCount