Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 3654|Respuesta: 0

[Fuente] Las sentencias SQL de EF generan automáticamente IS NULL o IS NOT NULL

[Copiar enlace]
Publicado en 21/6/2023 22:42:18 | | | |
Requisitos: Cuando EF utiliza expresiones linq to sql o lambda para consultar la base de datos, las sentencias SQL generadas por EF nos ayudarán a añadir algunas condiciones IS NULL o NOT NULL.

Ejemplo 1:

Genera una sentencia SQL así:

ESCOGER
    [Extensión2]. [Estado del usuario] COMO [UserStatus],
    [Extensión1]. [Id] COMO [Id]
    DE [dbo]. [InfoEmail] COMO [Extensión1]
    INNER JOIN [dbo]. [Cuenta] COMO [Extensión2] EN ([Extensión1].[ Dirección] = [Extensión2]. [Correo electrónico]) O (([Extensión1].[ Dirección] ES NULO) Y ([Extensión2].[ Correo electrónico] ES NULO))



Ejemplo 2:

Genera una sentencia SQL así:

ESCOGER
    [Extensión1]. [Id] COMO [Id],
    [Extensión1]. [Nombre] COMO [Nombre],
    [Extensión1]. [ParentId] AS [ParentId],
    [Extensión1]. [Posición] COMO [Posición],
    [Extensión1]. [_CreateTime] COMO [_CreateTime],
    [Extensión1]. [_UpdateTime] COMO [_UpdateTime]
    DE [dbo]. [Clasificación] COMO [Extensión1]
    DONDE ([Extensión1].[ Nombre] IN (N'Android', N'Solaris')) Y ([Extensión1].[ Nombre] NO ES NULO)



Si quieres evitar que EF genere estas condiciones NULAS adicionales, puedes consultar lo siguiente.

Configura la propiedad DbContextConfiguration.UseDatabaseNullSemantics

Obtiene o establece un valor que indica si mostrar semántica nula de la base de datos al comparar dos operandos y ambos probablemente sean nulos. El valor por defecto es falso.

El código es el siguiente:


Por ejemplo:
Si UseDatabaseNullSemantics es verdadera, entonces (operand1 == operand2) se convertirá en (operand1 = operand2);
Si UseDatabaseNullSemantics es falso, se convertirá en (((operando1 = operando2) Y (NOT (operando1 ES NULO O operando2 ES NULO))) O ((operando1 ES NULO) Y (operando2 ES NULO))).

Documentación (Hay un error en la descripción de la documentación):El inicio de sesión del hipervínculo es visible.

campo para añadir el atributo [Required]

Después de que EF añade el atributo [Required] a la propiedad del objeto, en realidad no permite que el atributo (campo) sea NULL en la base de datos.Tras ejecutar el comando de migración, el campo no puede ser NULLDado que el campo no puede ser NULL en la base de datos, EF naturalmente no genera algunas comprobaciones NULL en las sentencias SQL generadas para ese campo.

Referencia:El inicio de sesión del hipervínculo es visible.






Anterior:ASP.NET Opciones de configuración Core (veintiuno) son la diferencia entre Añadir Opciones y Configurar
Próximo:El gancho ajax para desarrollo web intercepta todas las solicitudes XMLHttpRequest
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com