Не удалось перевести выражение LINQ. Либо переписайте запрос в форме, которую можно перевести, либо переключитесь на оценку клиента явно, вставив вызов либо в AsEnumerable (), AsAsyncEnumerable (), ToList (), либо ToListAsyn c (). См. https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации.
Причина в том, что неявная оценка клиента была отключена в EF Core 3.
Ссылка:
https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/breaking-changes#linq - запросы, которые больше не оцениваются на клиенте
В качестве обходного пути вы можете изменить, как показано ниже:
1 .Модель:
public class LastDayToEnterData
{
public int Id { get; set; }
public int YearID { get; set; }
public int MonthID { get; set; }
public int StopEnteringDataAfter { get; set; }
public string Name { get; set; }
}
2.Контроллер:
var date = _context.LastDayToEnterData.Select(u => new { u.MonthID, u.YearID, u.StopEnteringDataAfter,u.Id }).ToList();
var list = new List<LastDayToEnterData>();
foreach(var d in date)
{
var ConvertDate = new DateTime(d.YearID,d.MonthID, d.StopEnteringDataAfter);
if(ConvertDate > new DateTime(DateTime.Today.Year - 1, 10, 1))
{
var data = _context.LastDayToEnterData
.Where(l => d.Id == l.Id).FirstOrDefault();
list.Add(data);
}
}