11 Mart 2013, PAZARTESİ
Varlık Çerçevesi 5 bir Kayıt Güncelleme
/ASP.NET MVC3 bir ortamda Varlık içinde bir rekor Çerçeve 5 güncelleme düzenleme farklı yöntemler keşfetmek olmuştur, ama şimdiye kadar hiçbiri ihtiyacım var tüm kutuları kene. Neden açıklayacağım.
Hangi artılarını ve eksilerini bahsedeceğim üç yöntem buldum:
Yöntem 1 - Orijinal kayıt, her bir özellik güncelleştirin
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();
}
Artıları
- Özelliklerini değiştirmek belirleyebilir
- Görüntüler her özellik içermesi gerek yok
İnş
- 2 x veritabanı üzerinde orijinal sonra güncellemek için sorgular
Yöntem 2 - orijinal kayıt, set değerleri değişti
var original = db.Users.Find(updatedUser.UserId);
if (original != null)
{
db.Entry(original).CurrentValues.SetValues(updatedUser);
db.SaveChanges();
}
Artıları
- Sadece modifiye özelliklerini veritabanına gönderilir
İnş
- Görüntüler her özellik içermesi gerekir
- 2 x veritabanı üzerinde orijinal sonra güncellemek için sorgular
Yöntem 3 - güncelleştirilmiş bir kayıt Eklemek ve devlet EntityState için ayarlayın.Değiştirilmiş
db.Users.Attach(updatedUser);
db.Entry(updatedUser).State = EntityState.Modified;
db.SaveChanges();
Artıları
- 1 x veritabanı güncelleme için sorgu
İnş
- Hangi özelliklerini belirtmek değiştiremez
- Görüntüler her özellik içermelidir
Soru
Size sorum şu; gol bu elde edebileceğimi temiz bir yolu var mı?
- Özelliklerini değiştirmek belirleyebilir
- Görüntüler her özellik (şifre! gibi) içermesi gerek yok
- 1 x veritabanı güncelleme için sorgu
Bu işaret için çok küçük bir şey olduğunu biliyorum ama bu çok basit bir çözümü Gözden kaçırmış olabilirim. Yöntem bir hakim olacak ;-)
CEVAP
11 Mart 2013, PAZARTESİ
Arıyoruz:
db.Users.Attach(updatedUser);
var entry = db.Entry(updatedUser);
entry.Property(e => e.Email).IsModified = true;
// other changed properties
db.SaveChanges();
Bunu Paylaş:
Insert Birçok Varlık Çerçevesi için Bi...
MVC3 kullanarak Varlık Çerçevesi için ...
Varlık Çerçevesi Kod İlk - Ayır() DbCo...
Doğrulama Sunucu Veritabanı Varlık Çer...
Nasıl Varlık Çerçevesi özyinelemeli hi...