सेट करें 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 द्वारा प्रलेखित है:
<ब्लॉकक्वॉट>एक मान प्राप्त करता है या सेट करता है जो दर्शाता है कि दो ऑपरेंड की तुलना करते समय डेटाबेस नल सेमेन्टिक्स प्रदर्शित होते हैं, जिनमें से दोनों संभावित रूप से शून्य हैं। डिफ़ॉल्ट मान गलत है।
आप इसे अपने DbContext
. में सेट कर सकते हैं सबक्लास कंस्ट्रक्टर, जैसे:
public class MyContext : DbContext
{
public MyContext()
{
this.Configuration.UseDatabaseNullSemantics = true;
}
}
या आप इस सेटिंग को अपने dbContext
. पर भी सेट कर सकते हैं बाहर से उदाहरण नीचे दिए गए कोड उदाहरण की तरह, मेरे दृष्टिकोण से (देखें @GertArnold टिप्पणी), यह दृष्टिकोण बेहतर होगा, क्योंकि यह डिफ़ॉल्ट डेटाबेस व्यवहार या कॉन्फ़िगरेशन को नहीं बदलेगा):
myDbContext.Configuration.UseDatabaseNullSemantics = true;