Đặt UseDatabaseNullSemantics = true
;
-
Khi
UseDatabaseNullSemantics == true
,(operand1 == operand2)
sẽ được dịch là:WHERE operand1 = operand2
-
Khi
UseDatabaseNullSemantics == false
,(operand1 == operand2)
sẽ được dịch là:WHERE ( (operand1 = operand2) AND (NOT (operand1 IS NULL OR operand2 IS NULL)) ) OR ( (operand1 IS NULL) AND (operand2 IS NULL) )
Đây là tài liệu của Microsoft:
Nhận hoặc đặt một giá trị cho biết ngữ nghĩa null của cơ sở dữ liệu có được hiển thị hay không khi so sánh hai toán hạng, cả hai đều có khả năng là null. Giá trị mặc định là false.
Bạn có thể đặt nó trong DbContext
của mình phương thức khởi tạo lớp con, giống như vậy:
public class MyContext : DbContext
{
public MyContext()
{
this.Configuration.UseDatabaseNullSemantics = true;
}
}
Hoặc bạn cũng có thể đặt cài đặt này thành dbContext
của bạn ví dụ từ bên ngoài như ví dụ mã bên dưới, theo quan điểm của tôi (xem nhận xét của @GertArnold), apporach này sẽ tốt hơn, vì nó sẽ không thay đổi cấu hình hoặc hành vi cơ sở dữ liệu mặc định):
myDbContext.Configuration.UseDatabaseNullSemantics = true;