2016-08-21 53 views
1

我正在尝试从EF 6迁移到EF Core。EF Core:无法绑定多部分标识符“m.Added ”

我有这样的LINQ to SQL查询返回每天上图:

var model = db.Photos 
    .Where(m => m.Added <= startDate && m.Active == true) 
    .GroupBy(m => new { Year = m.Added.Year, Month = m.Added.Month, Day = m.Added.Day }) 
    .Select(m => m.FirstOrDefault()) 
    .OrderByDescending(m => m.Added) 
    .ThenBy(m => m.Rates.Sum(r => r.Points)) 
    .Take(10) 
    .ToList(); 

但EF核心相同的代码返回错误:

Core .Net SqlClient Data Provider: No column name was specified for column 1 of 'm2'. No column name was specified for column 2 of 'm2'. No column name was specified for column 3 of 'm2'. The multi-part identifier "m.Added" could not be bound. The multi-part identifier "m.Added" could not be bound. The multi-part identifier "m.Added" could not be bound.

我怎样才能把这种以EF核心?

+1

您不应该需要“翻译”。它应该可以工作 - 这很可能是EF核心中的一个错误。查询构建仍在建设中(https://docs.efproject.net/en/latest/efcore-vs-ef6/features.html)。 –

+0

tnx,任何ideea我如何得到这个工作?也许一些解决方法,直到EF团队添加这个? – lambidu

+0

是的,解决方法。尝试在多个更简单的查询中获取数据。 –

回答

1

我有同样的问题,有一个非常简单的表达:

var dates = items.Select(item => item.DateTime).Distinct(); 
// the multi-part identifier item.DateTime could not be bound 

我解决此得到了通过创建和传递的同等功能,而不是一个表达式:

function DateTime GetItemDate(Item item) 
{ 
    return item.DateTime; 
} 

var dates = items.Select(GetItemDate).Distinct(); 

由于这是一种解决方法我本来希望将此发布到评论讨论中,但我没有代表:/

相关问题