我知道有与此类似的问题,但是我无法解决我的问题。
我有以下方法:
public IDictionary<string, int> CountXXX(Expression<Func<MessageStatus, bool>> whereFilter = null)
{
try
{
var trackingOpens = whereFilter != null ? _context.MessageStatus.Where(whereFilter).Join(_context.TrackingOpens, x => x.MessageId, g => g.MessageId, (x, g) => x) :
_context.MessageStatus.Join(_context.TrackingOpens, x => x.MessageId, g => g.MessageId, (x, g) => x);
return trackingOpens
.GroupBy(x => x.VariationId)
.Select(g => new { Variation = g.Key.ToString(), Count = g.Count() })
.ToDictionary(x => x.Variation, x => x.Count);
}
catch (Exception e)
{
throw new Exception($"There's been an error trying to count the tracking opens from the database. Details: {e.Message}", e);
}
}
我有一个带有VariationId
属性的MessageStatus类,我需要将它们分组并为每个计数。问题是我需要在TrackingOpens
上加入MessageId
。此处的Linq
语句返回标题中提到的异常。
whereFilter
参数只是.where
子句中的另一个Linq语句。
TrackingOpens
没有字段VariationId
,我无法将其添加到该模型中
有人可以帮我解决此Linq语句吗?