通过linq对组执行连接



我正试图执行一个组,然后加入后(基于其他帖子在这里建议),我得到以下错误在。net 5

"RelationalProjectionBindingExpressionVisitor"失败了。这可能指出实体框架中的错误或限制。

代码:

var test = (from ra in _db.ResourceAllocation
group ra by new { ra.Date, ra.ResourceId } into g
join resource in _db.Resource on g.Key.ResourceId equals resource.Id
select new
{
ResourceName =  resource.Name,
ResourceDayOfWeek = resource.DayOfWeek,
g.Key.Date,
userSum = g.Sum(x => x.userCount)
}).OrderByDescending(e => e.Date).ToList();

尝试简化LINQ Translator的工作,并按部分分开查询。这个查询应该是可翻译的:

var grouped = 
from ra in _db.ResourceAllocation
group ra by new { ra.Date, ra.ResourceId } into g
select new 
{
g.Key.Date,
g.Key.ResourceId,
userSum = g.Sum(x => x.userCount)
}
var query =
from g in grouped
join resource in _db.Resource on g.ResourceId equals resource.Id
select new
{
ResourceName = resource.Name,
ResourceDayOfWeek = resource.DayOfWeek,
g.Date,
g.userSum
);

var result = query.OrderByDescending(e => e.Date).ToList();

最新更新