OrderBy для Nullable со значением по умолчанию в Entity Framework

Мы переносим некоторый код на использование 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 в запросе действительно работал. Так, может быть, все, что делает эту работу, можно использовать?

5
задан Community 23 May 2017 в 11:53
поделиться