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;