আমি একটি এএসপি.নেট এমভিসি 3 পরিবেশে সত্ত্বা ফ্রেমওয়ার্ক 5 এর মধ্যে রেকর্ড সম্পাদনা / আপডেট করার বিভিন্ন পদ্ধতি অনুসন্ধান করে চলেছি, তবে এখনও পর্যন্ত তাদের কোনওটিই আমার প্রয়োজনীয় সমস্ত বাক্সগুলিতে টিক চিহ্ন দেয় না। আমি ব্যাখ্যা করব কেন।
আমি তিনটি পদ্ধতি খুঁজে পেয়েছি যার সাথে আমি ভাল ও কুফলগুলি উল্লেখ করব:
পদ্ধতি 1 - আসল রেকর্ডটি লোড করুন, প্রতিটি সম্পত্তি আপডেট করুন
var original = db.Users.Find(updatedUser.UserId);
if (original != null)
{
original.BusinessEntityId = updatedUser.BusinessEntityId;
original.Email = updatedUser.Email;
original.EmployeeId = updatedUser.EmployeeId;
original.Forename = updatedUser.Forename;
original.Surname = updatedUser.Surname;
original.Telephone = updatedUser.Telephone;
original.Title = updatedUser.Title;
original.Fax = updatedUser.Fax;
original.ASPNetUserId = updatedUser.ASPNetUserId;
db.SaveChanges();
}
পেশাদাররা
- কোন বৈশিষ্ট্য পরিবর্তন তা নির্দিষ্ট করতে পারে
- দর্শনগুলির প্রতিটি সম্পত্তি থাকা দরকার নেই
কনস
- মূল লোড করতে ডাটাবেসে 2 এক্স ক্যোয়ারী এটি আপডেট করুন
পদ্ধতি 2 - আসল রেকর্ডটি লোড করুন, পরিবর্তিত মান সেট করুন
var original = db.Users.Find(updatedUser.UserId);
if (original != null)
{
db.Entry(original).CurrentValues.SetValues(updatedUser);
db.SaveChanges();
}
পেশাদাররা
- কেবলমাত্র পরিবর্তিত বৈশিষ্ট্যগুলি ডাটাবেসে প্রেরণ করা হয়
কনস
- দর্শনে প্রতিটি সম্পত্তি থাকা দরকার
- মূল লোড করতে ডাটাবেসে 2 এক্স ক্যোয়ারী এটি আপডেট করুন
পদ্ধতি 3 - আপডেট রেকর্ড সংযুক্ত করুন এবং এন্টিস্টেস্ট.মোডাইফাইডে রাষ্ট্র সেট করুন
db.Users.Attach(updatedUser);
db.Entry(updatedUser).State = EntityState.Modified;
db.SaveChanges();
পেশাদাররা
- আপডেট করার জন্য ডাটাবেসে 1 এক্স ক্যোয়ারী
কনস
- কোন বৈশিষ্ট্য পরিবর্তন তা নির্দিষ্ট করে বলা যায় না
- দর্শনে প্রতিটি সম্পত্তি থাকতে হবে
প্রশ্ন
আপনাদের কাছে আমার প্রশ্ন; আমি এই সেট লক্ষ্য অর্জন করতে পারে যে একটি পরিষ্কার উপায় আছে?
- কোন বৈশিষ্ট্য পরিবর্তন তা নির্দিষ্ট করতে পারে
- ভিউগুলিতে প্রতিটি সম্পত্তি (যেমন পাসওয়ার্ড) থাকা দরকার নেই
- আপডেট করার জন্য ডাটাবেসে 1 এক্স ক্যোয়ারী
আমি বুঝতে পারি এটি উল্লেখ করা বেশ ছোটখাটো জিনিস তবে আমি এর সহজ সমাধানটি অনুপস্থিত হতে পারি। যদি পদ্ধতি না হয় তবে একটিটি বিজয়ী হবে ;-)