dapper linq Referencia de objeto no establecida en una instancia de un objeto

c# dapper linq

Pregunta

Tengo una tabla de clientes simple que tiene 4 registros, y solo uno tiene correo electrónico

public string Username { get; set; }
public string Email { get; set; }

............

var data = cn.Query<Customer>("select * from customer");

var aaa= data.FirstOrDefault(f => f.Email.ToLower() == "admin@yourstore.com"); >> ok
var bbb= data.FirstOrDefault(f => f.Email.ToLower() == "kjhkh");

ya que otros artículos tienen email = null , entonces obtiene:

Referencia a objeto no establecida como instancia de un objeto

¿Por qué es tan complicado usar linq con Dapper, estoy haciendo mal?

Respuesta popular

Puede usar string.Equals() con un tipo StringComparison :

var a = data.FirstOrDefault(f => string.Equals(f.Email, "test@test.com", StringComparison.OrdinalIgnoreCase));

Esto funciona porque Equals() no generará una excepción de referencia nula cuando cualquiera de los argumentos sea null . StringComparison.OrdinalIgnoreCase indica que la comparación no distingue entre mayúsculas y minúsculas.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué