Como: manipular valores nulos em expressões de consulta (guia de programação do C#)
Este exemplo mostra como lidar com possíveis valores nulos em coleções de origem.Uma coleção de objetos, como um IEnumerable<T> podem conter elementos cujo valor é Nulo.Se uma coleção de origem é nula ou contém um elemento cujo valor é nulo e sua consulta não lidar com valores nulos, um NullReferenceException será gerada quando você executa a consulta.
Exemplo
Você pode codificar na defensiva para evitar uma exceção de referência nula, conforme mostrado no exemplo a seguir:
var query1 =
from c in categories
where c != null
join p in products on c.ID equals
(p == null ? null : p.CategoryID)
select new { Category = c.Name, Name = p.Name };
No exemplo anterior, o where cláusula filtra todos os elementos nulos na seqüência de categorias.Essa técnica é independente do cheque nulo na cláusula join.A expressão condicional com null neste exemplo funciona porque Products.CategoryID é do tipo int? que é a abreviação de Nullable<int>.
Em uma cláusula de associação, se apenas uma das teclas de comparação é um tipo de valor nulo, você pode converter o outro para um tipo anulável na expressão de consulta.O exemplo a seguir, suponha que EmployeeID é uma coluna que contém os valores do tipo int?:
void TestMethod(Northwind db)
{
var query =
from o in db.Orders
join e in db.Employees
on o.EmployeeID equals (int?)e.EmployeeID
select new { o.OrderID, e.FirstName };
}
Consulte também
Referência
Tipos anuláveis (guia de programação do C#)