mi campo de base de datos int_ParentId consiste en un valor nulo. cómo lo verificaría para un nulo en esta consulta de linq. que no está funcionandolinq a sql comprobando nulo
return _db.Categories.Where(m => m.int_ParentId==null);
mi campo de base de datos int_ParentId consiste en un valor nulo. cómo lo verificaría para un nulo en esta consulta de linq. que no está funcionandolinq a sql comprobando nulo
return _db.Categories.Where(m => m.int_ParentId==null);
¿Usted le ha asignado campo int_ParentId
base de datos para int?
tipo (por ejemplo <Column Name="int_ParentId" Type="System.Int32" DbType="Int" CanBeNull="true" />
)? Si es así, tanto:
return _db.Categories.Where(m => m.int_ParentId == null);
y
return _db.Categories.Where(m => m.int_ParentId.HasValue);
debería funcionar.
Creo que desee utilizar el método del objeto Equals
:
return _db.Categories.Where(m => m.int_ParentId.Equals(null));
Esta pregunta no se responde fácilmente debido a la falta de contexto que proporciona, aunque generalmente _db.Categories.Where(m => m.int_ParentId.Equals(null));
hace lo que quiere.
Existen un par de discrepancias entre el sistema de tipo CTS (.NETs) y el sistema de tipo SQL.
Ver SQL-CLR Type Mismatches - MSDN y Null Semantics - MSDN para la referencia completa.
Especialmente nulo le causará dolores de cabeza si no tiene suficiente cuidado, ya que tiene dos significados completamente diferentes en los respectivos sistemas tipo. NULL
en SQL significa, "valor ausente, coincidirá con cualquier comparación", mientras que null
en .NET significa "ningún objeto, la comparación contra null siempre dará como resultado falso".
que tienen esta consulta trabajando en este escenario
YourContext db = new YourContext();
List<entity> list = (from n in db.YourEntity
where n.FieldToCheck.Equals(null)
select n).ToList();
espero que ayude.
perfecto - exactamente lo que estaba buscando –