मेरा परिदृश्य मैं विजुअल स्टूडियो 2010 का उपयोग एंटिटी फ्रेमवर्क 4.1 के साथ कर रहा हूं मेरे पास कई तालिकाओं और कई संग्रहीत प्रक्रियाओं के साथ विरासत डेटाबेस है। मैं एक ASP.NET सी # MVC 3मैपिंग इकाई ढांचे में संग्रहीत प्रक्रियाओं का चयन करें
का उपयोग कर रहा 'डेटाबेस पहले' डिजाइन को अपनाया है ADO.NET DbContext का उपयोग कर तो मैं सभी मॉडल और संगठनों और नेविगेशन गुण अच्छी तरह से की स्थापना के साथ एक edmx है कार्यक्रम लिख रहा हूँ। मैं प्रासंगिक मॉडलों को प्रक्रियाओं को सम्मिलित, अद्यतन, हटा सकता हूं। मैंने अन्य संग्रहीत प्रक्रियाओं को आयात करने के लिए 'फंक्शन आयात' का उपयोग किया है। हालांकि, मुझे क्रियाओं का चयन करने के लिए मेरी चयन प्रक्रियाओं को मैप करने का कोई तरीका नहीं मिल रहा है (आईडी द्वारा चुनें, चयन सूची, फ़िल्टर द्वारा चयन करें आदि)।
ईएफ आलसी लोडिंग का उपयोग करने लगता है, इसलिए मैं क्या करना चाहता हूं जब कोई ऑब्जेक्ट अपने बच्चे की वस्तुओं को लाता है तो यह पहले से लिखित संग्रहित प्रक्रियाओं का उपयोग करता है। (चुनिंदा प्रक्रियाओं दूसरों के बीच, एक 'isDeleted' ध्वज को ध्यान में रखना, और 'द्वारा आदेश' खंड का उपयोग करें)
मैं इस लेख से देख http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx LINQ एसक्यूएल के लिए खींचें और एस.पी. की बूंद, की अनुमति देता है कि जो लगता है, अधिक या कम, बिल्कुल मैं क्या चाहता हूँ।
मैं DefiningQuery शब्द भी भर चुका हूं। http://msdn.microsoft.com/en-us/library/cc982038.aspx क्या यह मैं चाहता हूं? मुझे नोट पसंद नहीं है 'परिभाषित प्रश्नों सहित स्टोरेज मॉडल में किए गए कोई भी बदलाव, जब आप अपडेट मॉडल विज़ार्ड चलाते हैं तो ओवरराइट किया जाएगा।'
संक्षेप में, मैं क्या करना चाहता हूं जब कोई ऑब्जेक्ट अपने बच्चे की वस्तुओं को प्राप्त करता है तो यह मेरी संग्रहीत प्रक्रियाओं का उपयोग करता है।
क्या मैं इकाई फ्रेमवर्क का उपयोग करके अपना लक्ष्य प्राप्त कर सकता हूं? क्या मुझे कुछ स्पष्ट याद आया है?
या मैं तो उदाहरण के लिए, मेरे उत्पन्न पता मॉडल इस संपत्ति है, वास्तव में चालाक हो सकता है और डाटाबेस इकाई टी -4 टेम्पलेट को संशोधित करने, प्रयास करना चाहिए:
public virtual ICollection<AddressLine> AddressLines {
get{
DBWrapper _db = new DBWrapper();
return _db.GetAddressLines(AddressID);
}
set{};
}
जहां GetAddressLines एक फ़ंक्शन को कॉल कस्टम समारोह है आयात और निरंतर रूपांतरण करता है।
धन्यवाद: जूली Lerman का लेख देखें। यह पुष्टि करता है कि मुझे क्या संदेह था – Webbie4