Задайте UseDatabaseNullSemantics = true;
-
Когато
UseDatabaseNullSemantics == true,(operand1 == operand2)ще се преведе като:WHERE operand1 = operand2 -
Когато
UseDatabaseNullSemantics == false,(operand1 == operand2)ще се преведе като:WHERE ( (operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL)) ) OR ( (operand1 IS NULL) AND (operand2 IS NULL) )
Това е документирано от Microsoft:
Получава или задава стойност, указваща дали семантиката null на базата данни се показва при сравняване на два операнда, като и двата са потенциално нулеви. Стойността по подразбиране е false.
Можете да го зададете във вашия DbContext конструктор на подклас, така:
public class MyContext : DbContext
{
public MyContext()
{
this.Configuration.UseDatabaseNullSemantics = true;
}
}
Или можете също да зададете тази настройка на вашия dbContext екземпляр отвън като примера с код по-долу, от моя гледна точка (виж коментара @GertArnold), този подход ще бъде по-добър, защото няма да промени поведението или конфигурацията на базата данни по подразбиране):
myDbContext.Configuration.UseDatabaseNullSemantics = true;