9

मैं निम्नलिखित ग्राहक वर्ग है:क्या मैं ईएफ में संग्रहीत प्रक्रिया में प्रतिनिधि द्वारा एक नेविगेशन संपत्ति को आलसी लोड कर सकता हूं?

public class Customer 
{ 
    public long Id { get; set; } 

    public virtual ICollection<Order> Orders { get; set; } 
} 

मेरे डेटाबेस ग्राहकों और आदेश टेबल, लेकिन कोई विदेशी कुंजी रिश्ते हैं। किसी ग्राहक के लिए ऑर्डर एक संग्रहीत प्रक्रिया का उपयोग करके प्राप्त किया जाता है जो ग्राहक आईडी लेता है और ऑर्डर पंक्ति देता है। मैं डेटाबेस को संशोधित नहीं कर सकता।

मुझे पता है कि संग्रहीत प्रक्रिया को एंटीटी फ्रेमवर्क से कैसे कॉल किया जाए, लेकिन क्या फ्लैंट एपीआई का उपयोग करके डीबीकॉन्टेक्स्ट को कॉन्फ़िगर करना संभव है ताकि ग्राहक ऑब्जेक्ट के ऑर्डर संग्रह को एक्सेस करने से संग्रहीत करने के लिए कॉल के माध्यम से इकाइयों को आलसी लोड हो जाए। प्रक्रिया?

मैं ईएफ का नवीनतम संस्करण उपयोग कर रहा हूं।

+0

हाय, क्या आपने इसे हल किया? – SimonGates

+0

यदि आप कर सकते हैं तो मुझे बहुत आश्चर्य होगा, मुझे लगता है कि केवल विकल्प ही लोड हो रहे हैं या एक विदेशी कुंजी बना रहे हैं। – Heberda

+0

क्या आप ऐसा दृश्य नहीं बना सकते जो समान करता है? आप आलसी लोडिंग क्यों चाहते हैं? आपको संग्रहीत प्रक्रियाओं की आवश्यकता क्यों है? उपरोक्त उत्तर के आधार पर –

उत्तर

1

नहीं, आप नहीं कर सकते। आलसी लोडिंग को प्रॉक्सी ऑब्जेक्ट में कोड किया गया है जो ईएफ बनाता है (यदि संभव हो), प्रॉक्सी उत्पन्न होने के तरीके को अवरुद्ध/कॉन्फ़िगर करने का कोई तरीका नहीं है।

संग्रहीत प्रक्रिया में DbSet की डिफ़ॉल्ट पढ़ने की क्रिया को मैप करना भी संभव नहीं है। यह हमेशा एक प्रश्न है। केवल create, update and delete can be mapped to stored procedures

कारण (मुझे लगता है) यह है कि संग्रहित प्रक्रियाएं संगत नहीं हैं, इसलिए यदि एक जटिल LINQ क्वेरी में एक इकाई को संग्रहीत प्रक्रिया (पढ़ने के लिए) में मैप किया जाएगा तो क्वेरी को एक में बदलना संभव नहीं होगा एसक्यूएल कथन

+0

, आलसी लोडिंग के लिए एकमात्र विकल्प एक दृश्य बनाना होगा। –

संबंधित मुद्दे

 संबंधित मुद्दे