c# - Linq is weird or I'm stupid? -


यह क्यों काम करता है:

  परिणाम = (डीबी से ई में.कैम्पैनिग जहां ई .Code.Equals ("") & amp; amp; & amp; e.Domain.Equals (नल) का चयन करें ई)। FirstOrDefault ();  

लेकिन नहीं (परिणाम शून्य है):

  स्ट्रिंग कोड = ""; स्ट्रिंग डोमेन = नल; परिणाम = (db.CampaignCodes में ई से जहां e.Code.Equals (code) और amp; E.Domain.Equals (डोमेन) का चयन करें e)। FirstOrDefault ();  

??

यह वाकई काफी अजीब लगता है। LINQ से SQL को वैरिएबल के मान को प्राप्त करने और निरंतर से प्राप्त होने के बीच अंतर को अच्छी तरह से नोटिस कर सकता है, लेकिन मुझे उम्मीद नहीं थी कि इससे कोई फर्क नहीं पड़े।

मैं दृढ़ता से अनुशंसा करता हूं कि जब भी LINQ से SQL अजीब तरह से व्यवहार करते हुए प्रतीत होता है, आप प्रसंग लॉगिंग को चालू करते हैं और देखें कि प्रत्येक मामले में वास्तव में क्या निष्पादित किया जा रहा है।

संपादित करें: ओवरलोडिंग पहलू के आसपास के अन्य उत्तर वाकई दिलचस्प हैं अगर आप दूसरे कोड में स्ट्रिंग के बजाय ऑब्जेक्ट प्रकार के रूप में डोमेन वेरिएबल घोषित करते हैं, या null पहले प्रश्न में स्ट्रिंग ?


Comments