के साथ == और .quals() के बीच अंतर मुझे हाल ही में "इंटरफ़ेस सदस्य का मैपिंग ..... समर्थित नहीं है" त्रुटि मिली है, जिसे मैंने this thread पर आधारित किया था। प्रदर्शित करने के लिए: "इंटरफेस सदस्य IMyInterface.valueText की मैपिंग समर्थित नहीं है":इंटरफ़ेस और LINQ
public interface IMyInterface { string valueText { get; set; } }
public class MyData : IMyInterface
{
int ID { get; set;}
string valueText { get; set;}
}
public class MyOtherData : IMyInterface
{
long ID { get; set;}
string valueText { get; set;}
}
और
public static IEnumerable<T> GetByValue<T>(string value) : where T : class, IMyInterface, new()
{
using (var context = new DataContext())
{
// The important line
return context.GetTable<T>().Where(x => x.valueText == value);
}
}
इस कोड चल रहा है, मैं एक NotSupportedException मिल चाहते हैं। हालांकि, अगर मैं x.valueText == value
को x.valueText.Equals(value)
के साथ प्रतिस्थापित करता हूं, तो यह पूरी तरह से अपेक्षित काम करता है।
मैंने इसे अपने कोड में हल कर लिया है, लेकिन मैं क्यों समझना चाहता हूं यह इस तरह से व्यवहार करता है। क्या कोई इसे समझा सकता है?
अद्यतन: नीचे दी गई मेरी टिप्पणी के अनुसार, LINQ से SQL टीम ने इसे "ठीक नहीं किया जाएगा" के रूप में बंद कर दिया। मुझे लगता है कि इसका मतलब है कि अब यह एक ज्ञात बग के रूप में गिना जाता है, लेकिन एक ऐसा जिसे जल्द ही हल नहीं किया जा रहा है। मैं अभी भी जानना चाहता हूं कि यह पहले स्थान पर अलग-अलग व्यवहार क्यों करता है।
आपके द्वारा लिंक किए गए थ्रेड को पढ़ने के बाद, मैं कहूंगा कि यह एक बग जैसा दिखता है। – phoog
@ फ़ूग, मैं भी एक बग मानता हूं, सिवाय इसके कि इसमें एक स्पष्ट त्रुटि है। जिसका मतलब है कि उस परिदृश्य के लिए कुछ जांचना है। यह एक बग से बचने के लिए "तर्क जोड़ने के लिए भूल गया" बग, या एक अपवाद कोडित हो सकता है, लेकिन मुझे लगता है कि अपवाद "सही" व्यवहार है। – Bobson
@ बॉब्सन, क्या आपने यह देखने के लिए कनेक्ट की जांच की कि क्या किसी ने कभी भी बग की सूचना दी है? लिंक्ड थ्रेड में कुछ लोगों ने इसके बारे में बात की, लेकिन ऐसा लगता है कि किसी को भी इसे करने के लिए पर्याप्त पहल नहीं थी। – phoog