Imposta UseDatabaseNullSemantics = true;
-
Quando
UseDatabaseNullSemantics == true,(operand1 == operand2)sarà tradotto come:WHERE operand1 = operand2 -
Quando
UseDatabaseNullSemantics == false,(operand1 == operand2)sarà tradotto come:WHERE ( (operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL)) ) OR ( (operand1 IS NULL) AND (operand2 IS NULL) )
Questo è documentato da Microsoft:
Ottiene o imposta un valore che indica se la semantica Null del database viene visualizzata quando si confrontano due operandi, entrambi potenzialmente annullabili. Il valore predefinito è false.
Puoi impostarlo nel tuo DbContext costruttore di sottoclassi, in questo modo:
public class MyContext : DbContext
{
public MyContext()
{
this.Configuration.UseDatabaseNullSemantics = true;
}
}
Oppure puoi anche impostare questa impostazione sul tuo dbContext istanza dall'esterno come l'esempio di codice qui sotto, dal mio punto di vista (vedi il commento di @GertArnold), questo approccio sarà migliore, perché non cambierà il comportamento o la configurazione del database predefinito):
myDbContext.Configuration.UseDatabaseNullSemantics = true;