Ниже запрос LINQ работает, как ожидалось, в Dot Net Core 2.2
, но когда я обновился до 3.1
, он вызывает выполнение во время выполнения.
[HttpGet("{SINo}")]
public async Task<IEnumerable<dynamic>> SaleHistory(string SINo)
{
return await (from s in _context.Sales
where s.saleInvNo.Contains("|")
? s.saleInvNo.Split("|", StringSplitOptions.None)[1] == SINo
: s.saleInvNo == SINo
select new
{
s.saleDate,
s.saleInvNo
}).ToListAsync();
}
не может быть переведено. Либо перепишите запрос в форме, которая может быть переведена, либо переключитесь на оценку клиента явно, вставив вызов либо AsEnumerable (), AsAsyncEnumerable (), ToList (), либо ToListAsyn c ()
Как я могу изменить этот переводимый запрос?
Примечание. В таблице продаж ~ 1 миллион записей. Из этого я просто хочу получить одну запись.