ASP.NET MVC3 පරිසරයක් තුළ එන්ටිටි රාමුව 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 x විමසුම් පසුව එය යාවත්කාලීන කරන්න
ක්රමය 2 - මුල් වාර්තාව පූරණය කරන්න, වෙනස් කළ අගයන් සකසන්න
var original = db.Users.Find(updatedUser.UserId);
if (original != null)
{
db.Entry(original).CurrentValues.SetValues(updatedUser);
db.SaveChanges();
}
වාසි
- වෙනස් කළ ගුණාංග පමණක් දත්ත සමුදායට යවනු ලැබේ
අවාසි
- දර්ශන සෑම දේපලක්ම අඩංගු විය යුතුය
- මුල් පිටපත පැටවීම සඳහා දත්ත සමුදායේ 2 x විමසුම් පසුව එය යාවත්කාලීන කරන්න
ක්රමය 3 - යාවත්කාලීන කරන ලද වාර්තාවක් අමුණා එන්ටිටිස්ටේට් තත්වයට සකසන්න
db.Users.Attach(updatedUser);
db.Entry(updatedUser).State = EntityState.Modified;
db.SaveChanges();
වාසි
- යාවත්කාලීන කිරීම සඳහා දත්ත සමුදායේ 1 x විමසුම
අවාසි
- කුමන ගුණාංග වෙනස් වේදැයි සඳහන් කළ නොහැක
- දර්ශන සෑම දේපලක්ම අඩංගු විය යුතුය
ප්රශ්නය
මගේ ප්රශ්නය ඔයාලට; මට මෙම අරමුණු සාක්ෂාත් කරගත හැකි පිරිසිදු ක්රමයක් තිබේද?
- කුමන ගුණාංග වෙනස් වේදැයි නියම කළ හැකිය
- දර්ශන සෑම දේපලක්ම අඩංගු විය යුතු නැත (මුරපදය වැනි!)
- යාවත්කාලීන කිරීම සඳහා දත්ත සමුදායේ 1 x විමසුම
මෙය පෙන්වා දීමට සුළු කාරණයක් බව මට වැටහී ඇති නමුත් මේ සඳහා සරල විසඳුමක් මට මග හැරී යා හැකිය. ක්රමයක් නොවේ නම් එකක් පවතිනු ඇත ;-)