In. NET Core 2.2, я использовал вспомогательный класс, который расшифровывает данные из базы данных и извлекает информацию о пользователе, но теперь я не могу. Я получаю исключение, говорящее, что оно не может быть переведено.
Это тот же лог c, используемый в. NET Core 2.2
var cp = await Context.Company
.Where(a => Encrypt.Decry(a.Email, a.Em) == login.Email
&& login.Password == Hash.get(a.Password))
.SingleOrDefaultAsync();
Исключение:
Выражение LINQ 'DbSet.Where (c => Encrypt.Decry (значение: c .Email, se c: c .Em) == __login_Email_0 && __login_Password_1 == Ха sh .get (c .Password)) 'не может быть переведено. Либо переписать запрос в форме, которую можно перевести, либо явно переключиться на оценку клиента, вставив вызов либо AsEnumerable (), AsAsyncEnumerable (), ToList (), либо ToListAsyn c (). См. https://go.microsoft.com/fwlink/?linkid=2101038 для получения дополнительной информации. "}
Я не понимаю, почему я должен явно использовать AsEnumerable()
, AsAsyncEnumerable()
, ToList()
или ToListAsync()
?
Обновление: поэтому я попытался следовать примеру, добавив AsEnumerable
, но это должно быть с ожиданием, и я получаю сообщение об ошибке where
var cp = await Context.Company.AsAsyncEnumerable().Where(a => Encrypt.Decry(a.Email, a.Em) == login.Email && login.Password == Hash.get(a.Password)).SingleOrDefaultAsync();