.NET & Linq - Warunek na wartość pola równą/różną od null
Biblioteka Linq potrafi sprawiać problemy programiście. Co prawda to raczej kwestia umiejętności jej stosowania, ale czasem zderzamy się z rzeczami niespodziewanymi. O ile zwracanie szczególnej uwagi na stosowanie tylko tych funkcji, które Linq będzie potrafiło przełożyć na język SQL jest bardzo istotne, o tyle, to nie jedyne przeciwności z którymi może przyjść się zmierzyć. Ostatnio przekonałem się również, że problematyczne może być pobieranie z bazy tych rekordów, dla których pewne pola mają być różne od null-a.
W czym rzecz?
Stanąłem ostatnio przed zadaniem pobrania odpowiednich wartości z bazy danych przy pomocy biblioteki Linq. Sprawa najprostsza w świecie. Jedyny warunek jaki musiałem nałożyć na pobierane dane, to to, że jedno z pól nie mogło być nullem. Odruchowo więc stworzyłem kod podobny do poniższego:where rekord.JednoZPol != null
select rekord).Distinct().ToList();
Jak powinien wyglądać poprawny warunek?
Przyznam, że zdziwiłem się bardzo i do tej pory nie do końca rozumiem w czym problem. Na szczęście udało mi się znaleźć prawidłowe podejście do ograniczania danych, do wartości różnych od nulla. Poprawiony kod powinien wyglądać następująco:where !object.Equals(rekord.JednoZPol, null)
select rekord).Distinct().ToList();
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!