EF Core:多部分标识符"m.Added"不能被束缚
本文关键字:quot Added 不能 束缚 Core 标识符 EF 多部 | 更新日期: 2023-09-27 18:03:30
我正在尝试从EF 6迁移到EF Core。
我有这个Linq到SQL查询返回每日top照片:
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上返回错误:
Core . net SqlClient Data Provider:没有为'm2'的列1指定列名。没有为'm2'的列2指定列名。没有为'm2'的第3列指定列名。无法绑定多部分标识符"m.Added"。无法绑定多部分标识符"m.Added"。无法绑定多部分标识符"m.Added"。
如何将其转换为EF Core?
我在一个非常简单的表达式中遇到了同样的问题:
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();
作为一种变通方法,我更愿意将此发布到评论讨论中,但我没有rep:/