/ / एंटिटी फ्रेमवर्क - c #, एंटिटी-फ्रेमवर्क, ado.net का उपयोग करके इकाइयाँ बनाने वाली इकाइयाँ

एक संस्था जो इकाई फ्रेमवर्क - सी #, इकाई-ढांचे, ado.net का उपयोग कर इकाइयों को बनाती है

जब एक इकाई की जरूरत हो तो आप मामले को कैसे संभालते हैंबनाने के लिए, अपने तरीकों में से, अन्य संस्थाओं? मेरी समस्या यह है कि चूंकि प्रत्येक अलग-अलग संस्था के पास "ObjectContext ऑब्जेक्ट" नहीं है, इसलिए AddToBlahs () विधियों के साथ, यह ऐसा नहीं कर सकता है।

उदाहरण के लिए, एक साइट मॉडल है जिसमें एक हैUpdateLinks () विधि जो उस साइट से संबंधित लिंक ऑब्जेक्ट बनाने वाली है। UpdateLinks () विधि doesn "t में एक ObjectContext है। आप क्या करते हैं? क्या आप इसे इस तरह से पास करते हैं:

public void UpdateLinks(ProjectEntities db) {
foreach (var link in FetchLinks()) {
db.AddToLinks(link);
}
}

या आप किसी अन्य पैटर्न का उपयोग करते हैं?

उत्तर:

जवाब के लिए 2 № 1

आपको इसके लिए संदर्भ की आवश्यकता नहीं है।

जबसे Site.UpdateLinks बना रहा है Link वस्तुओं उदाहरण से संबंधित, उदाहरण में नए के साथ जुड़ाव होगा Site। जोड़ना Link सेवा मेरे Site.Links खुद ब खुद नया बनाता है Link उसी संदर्भ का हिस्सा (यदि कोई हो) Site। इसी तरह, जब आप बचाते हैं Site the Link इसके साथ सहेजा जाएगा.


उत्तर № 2 के लिए 1

नहीं क्रेग Stuntz द्वारा जवाब के बारे में यकीन है कि ... लिंक को प्रसंग से अनुलग्न किया जाना चाहिए, लेकिन Site.Links में लिंक जोड़ने से इसे स्वचालित रूप से अनुलग्न नहीं किया जा सकता.आप db करने की जरूरत है. AddToLinks (लिंक) वैसे भी.

लेकिन अपने सवाल का जवाब, ObectContext प्रबंधन के लिए सबसे अच्छा पैटर्न में से एक शायद UnitOfWork पैटर्न है.इसका उपयोग करके, आप निकायों को "वर्तमान में उनके द्वारा संबंधित क्षेत्र के बारे में स्वयं-जागरूकता" बना सकते हैं.यह देखें लेख एक विस्तृत विवरण और कार्यान्वयन के नमूने के लिए. आप अभी भी (एक सरल कार्यान्वयन के रूप में) उदाहरण के रूप में आप में क्या एक पैरामीटर के रूप में विधि के लिए ऑब्जेक्टकॉन्टेक्स्ट पास कर सकते हैं।