ठीक है, इसलिए this page के अनुसार, एंटीटी फ्रेमवर्क Include
विधि के भीतर Select
का उपयोग कर उत्सुकता से कई स्तरों को लोड करना चाहिए। शामिल हैं "अभिव्यक्ति की अमान्य प्रकार" दूसरी करने के लिए फोन पर -इकाई फ्रेमवर्क उत्सुक एकाधिक स्तर अपवाद लोड हो रहा है
var reports = _context.Reports
.Include(rt => rt.Fields)
.Include(rt => rt.Fields.Select(f => f.FieldType))
.Include(rt => rt.Fields.Select(f => f.FieldType.FieldIdentifier));
फिर भी यह एक InvalidOperationException
फेंकता है:
मैं निम्नलिखित कोड है। अपवाद EntityFrameworkHelper.CollectRelationalMemebers
से आ रहा है।
मैंने Include
संबंधित गुणों के तारों का उपयोग करने का भी प्रयास किया, लेकिन यह भी असफल रहा (मैं संभवतः तारों का उपयोग करने से बचने के बजाय यदि संभव हो तो)।
मैं .NET 4.0 के लिए ईएफ 5.0 डीएलएल का उपयोग कर रहा हूं। मेरे ईएफ वर्ग पुराने फैशन वाले डेटाबेस हैं- पहले EntityObject
एस।
क्या किसी को कारण पता है और यदि कुछ भी है तो मैं इस अपवाद के बारे में क्या कर सकता हूं?
संपादित करें:
स्ट्रिंग संस्करण का उपयोग करते समय:
var reports = _context.Reports
.Include("Fields")
.Include("Fields.FieldType")
.Include("Fields.FieldType.FieldIdentifier"));
यह InvalidOperationException
फेंकता है - अभिव्यक्ति का अमान्य प्रकार।
जब आप 'Include' के स्ट्रिंग-आधारित संस्करण का उपयोग करते हैं तो सटीक अपवाद संदेश क्या होता है? – Slauma
उपरोक्त उत्तर देखें। – MgSam
मेरा मतलब 'Include' के ** स्ट्रिंग ** आधारित संस्करण के लिए अपवाद था। – Slauma