मेरे प्रश्न से संबंधित स्टैक ओवरफ्लो पर क्यू & ए बहुत सारे हैं, लेकिन मैं इस मुद्दे के समाधान को हल नहीं कर सकता और समाधान जो इस परिदृश्य में सबसे अच्छा काम करता है;नलबल फ़ील्ड और एसक्यूएल नल इश्यू
तो मैं एक विधि आप एक parentID पारित करने के लिए अनुमति देता है, और मूल्य रिकॉर्ड एक LINQ क्वेरी का उपयोग कर फ़िल्टर कर दिया जाएगा पर आधारित है कि है। डेटाबेस में क्षेत्र नल मानों की अनुमति देता है। अब अगर मैं जहां खंड में ==
ऑपरेटर का उपयोग क्षेत्रों की तुलना, एसक्यूएल उत्सर्जित गलत है (यह नहीं की तुलना के लिए IS NULL
का उपयोग करता है), और इसलिए पैदावार 0 परिणाम क्वेरी। मैंने इसे Object.Equals()
विधि का उपयोग करके हल किया। यह काम करता है, लेकिन अब मुझे गैर नल मान पास करने पर एक अपवाद मिलता है, एक पूर्णांक
'System.Object' प्रकार का निरंतर मान बनाने में असमर्थ। इस संदर्भ में केवल प्राचीन प्रकार या गणना प्रकार समर्थित हैं।
तो मैं एक साधारण विधि
using (TestEntities context = new Entities())
{
return from c in context.ItemMappings
where c.ParentID.Equals(parentID)
select new ItemDTO
{
ItemID = c.Item.ItemID,
ItemName = c.Item.ItemName,
ItemType = new ItemTypeDTO
{
TypeID = c.Item.Type.TypeID,
TypeName =c.Item.Type.TypeName
};
}
मैं एक समय में है कि कोशिश करता हूँ, और मुझे लगता है कि यह काम करेगा की ओर देखकर उसे पता है। Btw, मैं तर्क है कि मैं एसक्यूएल में एक ही मुद्दा मिल जाएगा समझते हैं, लेकिन सोचा था कि LINQ इंजन सही मेरी मूल्य के आधार पर एसक्यूएल फेंकना होगा। मैं अपवाद है कि मैं Object.Equals –
मुझे लगता है कि त्रुटि की विशेषताओं के बारे में सुनिश्चित नहीं कर रहा हूँ का उपयोग करते समय मिल गया के बारे में अधिक भ्रमित किया गया था; वह मेरे लिए एक नया है ... दुर्भाग्यवश ईएफ एसक्यूएल प्रश्नों में उन प्रकार के अनुकूलन को देखने के लिए नहीं देखता है। –