#dotnet #csharp #linq
linq zwraca NullReferenceException gdy zapytanie nie znajdzie nic.Jak mam zrobić zapytanie linq,żeby nie wywalało błędu.
Tak zwraca nullaExpection
`
linq zwraca NullReferenceException gdy zapytanie nie znajdzie nic.Jak mam zrobić zapytanie linq,żeby nie wywalało błędu.
Tak zwraca nullaExpection
var kontrahent = _db.Database.SqlQuery(SqlQueries.UsersLoginByEmail(email, lang))
.Where(x=>(x.SklepLogin!=null || x.SklepLogin !="") && x.SklepLogin.ToLower() == email.ToLower())
.FirstOrDefault();var kontrahent = _db.Database.SqlQuery(SqlQueries.UsersLoginByEmail(email, lang))
.Where(n => string.Equals(n.SklepLogin.ToLower(), email.ToLower()))
.DefaultIfEmpty().FirstOrDefault();`
var kontrahent = _db.Database.SqlQuery(SqlQueries.UsersLoginByEmail(email, lang))
.FirstOrDefault(x.SklepLogin.ToLower() == email.ToLower());- Najlepsze
- Wszystkie komentarze






1. Zmieńże te polskie nazwy i nie podążaj więcej tą drogą...
2. Co konkretnie jest tutaj nullem, kiedy leci exception?
@budyn: W pierwszej wersji ma x.SklepLogin !=null, więc powinno to pominąć taki przypadek.
NULL przechodzi bo
"ExceptionMessage": "Object reference not set to an instance of an object.","ExceptionType": "System.NullReferenceException",
!string.IsNullOrEmpty(x.SklepLogin)@smalczyk1: null ci przychodzi w "SklepLogin" na którymś z wierszy (a przechodzi ORa, bo SklepLogin !="") a potem pewnie wołasz na
x => x.SklepLogin.Equals(email, StringComparison.OrdinalIgnoreCase);var kontrahent = _db.Database.SqlQuery(SqlQueries.UsersLoginByEmail(email, lang)).Where(x=>!string.IsNullOrEmpty(x.SklepLogin) && x.SklepLogin.ToLower() == email.ToLower())
.FirstOrDefault();
.Where(x => x.SklepLogin.Equals(email, StringComparison.OrdinalIgnoreCase))?var kontrahent = _db.Database.SqlQuery(SqlQueries.UsersLoginByEmail(email, lang)).Where(n => n.SklepLogin.Equals(email, StringComparison.OrdinalIgnoreCase))
.FirstOrDefault();
public class KontrahentLogin{
public int Id { get; set; }
public string SklepLogin { get; set; }
var kontrahent = _db.Database.SqlQuery(SqlQueries.UsersLoginByEmail(email, lang))
var konrtahentWhere = kontrahent.Where(x=>(x.SklepLogin!=null || x.SklepLogin !="") && x.SklepLogin.ToLower() ==
Wywala już na pierwszym i dalej nic nie zwraca. Jeżeli podam poprawny @ ,który jest w bazie wszystko idzie cacy.Jak usune jeden znak i nic nie znajdzie w bazie to wywala nullexpection
var kontrahent = _db.Database.SqlQuery(SqlQueries.UsersLoginByEmail(email, lang))
a tworzysz ty napewno db ?
napisz cos takiego
if(