Przeprowadzamy migrację kodu do użycia Entity Framework i zapytanie, które próbuje sortować na polu Nullable i dostarcza domyślną wartość sortowania, wartość jest pusta przy użyciu Nullable.GetValueOrDefault(T) Funkcja.Zamówienie na Nullable <int> z wartością domyślną w Entity Framework
Jednak po wykonaniu zwraca następujący błąd:
LINQ to Entities does not recognize the method 'Int32 GetValueOrDefault(Int32)' method, and this method cannot be translated into a store expression.
Kwerenda wygląda następująco:
int magicDefaultSortValue = 250;
var query = context.MyTable.OrderBy(t => t.MyNullableSortColumn
.GetValueOrDefault(magicDefaultSortValue));
Od this answer I can see that there is a way to provide "translations" within your EDMX. Czy moglibyśmy napisać podobne tłumaczenie dla tej funkcji koalescencji?
UWAGA: Kiedy próbowałem, operator koalescencji ??
zamiast GetValueOrDefault w zapytaniu działa. Więc może to, co czyni tę pracę, można wykorzystać?
Dzięki! Jednak po tym, jak znalazłem '' 'do pracy, miałem nadzieję, że nie będę musiał edytować moich istniejących zapytań (napisanych w kontekście LINQ To SQL), które już używają GetValueOrDefault(). – Reddog