मैं WinDbg में इस समस्या को डिबग और यह निम्न Microsoft.VisualStudio.Web.Mvc.Scaffolding.BuiltIn.EntityFrameworkServices
विधि के कारण होती है:
internal static bool IsValidContextType(Type contextType)
{
return (typeof(ObjectContext).IsAssignableFrom(contextType) || ((contextType.BaseType != null) && contextType.BaseType.FullName.Equals("System.Data.Entity.DbContext", StringComparison.OrdinalIgnoreCase)));
}
इस विधि झूठी लौटा रहा है, क्योंकि यह गलत प्रकार से पारित कर दिया जा रहा है। मुझे यकीन नहीं है कि वे कहां से आते हैं, लेकिन वीएस के अंदर कई डीएलएल लोड किए गए हैं जिनमें संदर्भ प्रकार के कार्यान्वयन होते हैं, लेकिन उनमें से केवल एक ही डीबीकॉन्टेक्स्ट से व्युत्पन्न होता है - अन्य सभी सिस्टम से प्राप्त होते हैं। ऑब्जेक्ट। इन फर्जी प्रकारों की असेंबली मेरी '% localappdata% \ assembly' निर्देशिका में हैं, इसलिए वे कुछ टूल द्वारा स्वत: जेनरेट की गई हैं और वीएस में लोड की गई हैं।
बग इस तथ्य के कारण होता है कि Microsoft.VisualStudio.Web.Mvc.Util.TypeHelper.GetType
केवल Type.FullName द्वारा फ़िल्टर करता है। सही प्रकार को खोजने के लिए IsValidContextType()
द्वारा फ़िल्टर करना भी आवश्यक है।
ठीक है, कुछ वास्तव में अजीब चल रहा है। मेरे डीबीकॉन्टेक्स्ट-व्युत्पन्न वर्ग के लिए मेरे पास 2 आंशिक कक्षाएं हैं (इनमें से अधिकांश एक .tt स्क्रिप्ट द्वारा स्वतः उत्पन्न होती हैं, और कुछ हाथ से तैयार की जाती हैं)। जब मैं नियंत्रक जोड़ने की कोशिश करता हूं, वीएस मेरी आंशिक कक्षा में नई गुण जोड़ता है, तो यह आंशिक वर्ग के उस हिस्से को बनाता है (केवल मैन्युअल भाग, और यह बेस क्लास का उपयोग नहीं करता है)। तो यह उस डीएलएल को लोड करता है जो इसे मॉडल वर्ग के आधे से स्मृति में बनाया गया है, फिर यह उपरोक्त बेस-क्लास चेक में विफल रहता है।
अजीब।
नीचे पंक्ति: यदि आपके पास है तो अपने मॉडल संदर्भ के आंशिक वर्गों को निकालने का प्रयास करें।
मुझे एक ही समस्या मिल रही थी। किसी कारण से ऑटो उत्पन्न डेटा संदर्भ गलत है .. हर बार। –