Мы переносим некоторый код на использование Entity Framework и имеем запрос, который пытается отсортировать по Nullable поле и предоставляет значение сортировки по умолчанию, если значение равно нулю, используя функцию Nullable.GetValueOrDefault (T) .
Однако при выполнении возвращается следующая ошибка:
LINQ to Entities не распознает метод Int32 GetValueOrDefault (Int32), и этот метод не может быть преобразован в выражение хранилища.
Запрос выглядит так:
int magicDefaultSortValue = 250;
var query = context.MyTable.OrderBy(t => t.MyNullableSortColumn
.GetValueOrDefault(magicDefaultSortValue));
Из этого ответа я вижу, что есть способ предоставить «переводы» в вашем EDMX . Можно ли написать аналогичный перевод для этой функции объединения?
ПРИМЕЧАНИЕ. Когда я попробовал, оператор объединения ??
вместо GetValueOrDefault в запросе действительно работал. Так, может быть, все, что делает эту работу, можно использовать?