Establecer UseDatabaseNullSemantics = true
;
-
Cuando
UseDatabaseNullSemantics == true
,(operand1 == operand2)
se traducirá como:WHERE operand1 = operand2
-
Cuando
UseDatabaseNullSemantics == false
,(operand1 == operand2)
se traducirá como:WHERE ( (operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL)) ) OR ( (operand1 IS NULL) AND (operand2 IS NULL) )
Esto está documentado por Microsoft:
Obtiene o establece un valor que indica si la semántica nula de la base de datos se muestra al comparar dos operandos, ambos potencialmente anulables. El valor predeterminado es falso.
Puede configurarlo en su DbContext
constructor de subclase, así:
public class MyContext : DbContext
{
public MyContext()
{
this.Configuration.UseDatabaseNullSemantics = true;
}
}
O también puede establecer esta configuración en su dbContext
instancia desde el exterior como el ejemplo de código a continuación, desde mi punto de vista (vea el comentario de @GertArnold), este enfoque será mejor, porque no cambiará el comportamiento o la configuración predeterminados de la base de datos):
myDbContext.Configuration.UseDatabaseNullSemantics = true;