Stel UseDatabaseNullSemantics = true
in;
-
When
UseDatabaseNullSemantics == true
,(operand1 == operand2)
wordt vertaald als:WHERE operand1 = operand2
-
When
UseDatabaseNullSemantics == false
,(operand1 == operand2)
wordt vertaald als:WHERE ( (operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL)) ) OR ( (operand1 IS NULL) AND (operand2 IS NULL) )
Dit is gedocumenteerd door Microsoft:
Hiermee wordt een waarde opgehaald of ingesteld die aangeeft of database-nul-semantiek wordt weergegeven bij het vergelijken van twee operanden, die beide potentieel nullbaar zijn. De standaardwaarde is onwaar.
U kunt het instellen in uw DbContext
subklasse constructor, zoals zo:
public class MyContext : DbContext
{
public MyContext()
{
this.Configuration.UseDatabaseNullSemantics = true;
}
}
Of u kunt deze instelling ook instellen op uw dbContext
instantie van buitenaf zoals het onderstaande codevoorbeeld, vanuit mijn oogpunt (zie @GertArnold-opmerking), zal deze benadering beter zijn, omdat het het standaard databasegedrag of de standaardconfiguratie niet zal veranderen):
myDbContext.Configuration.UseDatabaseNullSemantics = true;