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.
|