Как использовать пользовательские функции на операторе LINQ?C#

Место общения программистов C#
Ответить
Anonymous
 Как использовать пользовательские функции на операторе LINQ?

Сообщение Anonymous »

У меня есть расширение, которое возвращает true или false, если значение NULL (null == false), называемое hasValuelite (). < /p>
Когда я использую метод в операторе LINQ, я получаю: < /p>
System.AggregateException: 'One or more errors occurred. (The LINQ expression 'DbSet()
.Where(l => l.AppId == __cache_App_Id_0 || !((object)l.AppId
.HasValueLite()))' could not be translated. Additional information: Translation of method 'SLT.Assets.Extensions.ObjectExtensions.HasValueLite' failed.
< /code>
Разве он не поддерживается для использования пользовательских функций, или мне приходится изменять функцию?public static bool HasValueLite(this object? obj) => obj is not null;
< /code>
в использовании: < /p>
cache.LocalValues = await db.GetWorker().WhereAsync(v => v.AppId == cache.App.Id || !v.AppId.HasValueLite());


Подробнее здесь: https://stackoverflow.com/questions/797 ... -statement
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»