আমি সম্প্রতি সত্ত্বা ফ্রেমওয়ার্ক 4 এর সাথে কাজ করছি এবং অবজেক্টসেট.আটাচ এবং অবজেক্টসেট.এডডবজেক্টটি কখন ব্যবহার করব সে সম্পর্কে কিছুটা বিভ্রান্ত হয়ে পড়েছি ।
আমার বোঝার থেকে:
- সিস্টেমে কোনও সত্তা ইতিমধ্যে উপস্থিত থাকলে "সংযুক্তি" ব্যবহার করুন
- একটি নতুন সত্তা তৈরি করার সময় "অ্যাডবজেক্ট" ব্যবহার করুন
সুতরাং, যদি আমি একটি নতুন ব্যক্তি তৈরি করি তবে আমি এটি করি ।
var ctx = new MyEntities();
var newPerson = new Person { Name = "Joe Bloggs" };
ctx.Persons.AddObject(newPerson);
ctx.SaveChanges();
যদি আমি কোনও বিদ্যমান ব্যক্তিকে সংশোধন করি তবে আমি এটি করি :
var ctx = new MyEntities();
var existingPerson = ctx.Persons.SingleOrDefault(p => p.Name = "Joe Bloggs" };
existingPerson.Name = "Joe Briggs";
ctx.SaveChanges();
মনে রাখবেন, এটি খুব সাধারণ উদাহরণ। বাস্তবে আমি খাঁটি পোকো (কোনও কোড জেনারেশন), সংগ্রহস্থল প্যাটার্ন (ctx.Persons সাথে ডিল করবেন না), এবং ইউনিট অফ ওয়ার্ক (ctx.SaveChanges নিয়ে কাজ করবেন না) ব্যবহার করছি। তবে "প্রচ্ছদের নীচে", উপরেরটি আমার বাস্তবায়নে কী ঘটে।
এখন, আমার প্রশ্ন - আমি এখনও এমন একটি দৃশ্য খুঁজে পাইনি যেখানে আমাকে সংযুক্তি ব্যবহার করতে হয়েছে ।
আমি এখানে কি মিস করছি? আমাদের কখন সংযুক্তি ব্যবহার করা দরকার?
সম্পাদনা
শুধু নির্মল, আমি খুঁজছি উদাহরণ যখন AddObject উপর সংযুক্ত করুন (অথবা বিপরীতভাবে) ব্যবহার করতে।
সম্পাদনা 2
নীচের উত্তরটি সঠিক (যা আমি মেনে নিয়েছি) তবে ভেবেছিলাম যে আমি অন্য একটি উদাহরণ যুক্ত করব যেখানে সংযুক্তি কার্যকর হবে।
বিদ্যমান ব্যক্তিকে সংশোধন করার জন্য আমার উপরের উদাহরণে , দুটি ক্যোয়ারী আসলে কার্যকর করা হচ্ছে।
একজন ব্যক্তি (.SingleOrDefault) পুনরুদ্ধার করার জন্য এবং অন্যটি আপডেট (। সেভচেনজেস) সম্পাদন করার জন্য।
যদি (কোনও কারণে), আমি ইতিমধ্যে জানতাম যে সিস্টেমে "জো ব্লগস" বিদ্যমান আছে, তবে তাকে প্রথমে পাওয়ার জন্য কেন একটি অতিরিক্ত জিজ্ঞাসা করবেন? আমি এটি করতে পারি:
var ctx = new MyEntities();
var existingPerson = new Person { Name = "Joe Bloggs" };
ctx.Persons.Attach(existingPerson);
ctx.SaveChanges();
এর ফলে কেবলমাত্র একটি আপডেটের বিবৃতি কার্যকর করা হবে।