में नया बच्चा बनाता है। मैं डिस्कनेक्ट (संदर्भ से) मोड में एंटीटी फ्रेमवर्क पीओसीओ का उपयोग करना चाहता हूं। मेरे परिदृश्य में मैं एक नई अभिभावक वस्तु बना रहा हूं और इसे मौजूदा बाल वस्तु को संलग्न करना चाहता हूं और फिर इसे डीबी में सहेजना चाहता हूं।
नीचे दिया गया कोड एक नए छात्र रिकॉर्ड को सहेजते समय अवांछनीय रूप से एक नया कोर्स रिकॉर्ड सम्मिलित करता है, जब मैं मौजूदा छात्र रिकॉर्ड को नए छात्र रिकॉर्ड से जोड़ना चाहता हूं।इकाई फ्रेमवर्क: मौजूदा बच्चे पीओसीओ को नए अभिभावक पीओसीओ में जोड़कर, डीबी
मैं इकाई की रूपरेखा जहां ...
- वस्तुओं संदर्भ से काट दिया जा सकता है में यह कैसे कर सकते। (यानी एक संदर्भ में पूछे गए और फिर एक अलग संदर्भ में सहेजा गया)
- मुझे डीबी से बाल रिकॉर्ड को फिर से पूछने की आवश्यकता नहीं है, इसलिए जब मैं डीबी में सहेज रहा हूं तो मैं इसे माता-पिता से जोड़ सकता हूं। मैं वास्तव में डीबी के लिए अतिरिक्त यात्रा करने से बचना चाहता हूं जब मेरे पास पहले से ही स्मृति में एक वस्तु के रूप में है।
यह पृष्ठ एक डेटाबेस आरेख कि नीचे दिए गए कोड पर http://entityframeworktutorial.net/EF4_EnvSetup.aspx#.UPMZ4m-UN9Y
class Program
{
static void Main(string[] args)
{
//get existing course from db as disconnected object
var course = Program.getCourse();
//create new student
var stud = new Student();
stud.StudentName = "bob";
//assign existing course to the student
stud.Courses.Add(course);
//save student to db
using (SchoolDBEntities ctx = new SchoolDBEntities())
{
ctx.Students.AddObject(stud);
ctx.SaveChanges();
}
}
static Course getCourse()
{
Course returnCourse = null;
using (var ctx = new SchoolDBEntities())
{
ctx.ContextOptions.LazyLoadingEnabled = false;
returnCourse = (from s in ctx.Courses
select s).SingleOrDefault();
}
return returnCourse;
}
}
दूसरा विकल्प लगभग काम करता है, लेकिन मुझे "ऑब्जेक्ट संलग्न नहीं किया जा सकता क्योंकि यह ऑब्जेक्ट संदर्भ में पहले से ही है।" "ctx.Students.AddObject (स्टड) पर त्रुटि;" लाइन। मुझे लगता है कि मैं अभी भी "stud.Courses.Add (कोर्स) कर रहा हूं, जबकि मैं ऐसा नहीं कर सकता;" इससे पहले । मैं अभी भी स्टड ऑब्जेक्ट में पाठ्यक्रम संग्रह का उपयोग करना चाहता हूं। – MakkyNZ
ठीक है, मेरे पास इसका परीक्षण करने के लिए कोई समाधान आसान नहीं है, लेकिन इसे पहले संलग्न करने का प्रयास करें, और उसके बाद इसे छात्र में जोड़ें। उम्मीद है कि इस तरह इसे ईएफ द्वारा "जोड़ा गया" के रूप में चिह्नित नहीं किया जाएगा। –
जो वास्तव में आदर्श नहीं है। मैं अभिभावक-> बाल संबंध पहले किसी ऑब्जेक्ट स्तर पर हो रहा हूं, क्योंकि यह अभी तक डीबी में सहेजने के लिए तैयार नहीं हो सकता है। हो सकता है कि मुझे केवल उन संस्थाओं के बीच सभी रिश्तों को हटा देना चाहिए जो ईएफ उत्पन्न करता है और मैन्युअल रूप से इसे नियंत्रित करता है? – MakkyNZ