2011-05-24 16 views
8

Sütun Entity Framework 4.1 İlk Kodunda güncellenmesini hariç tutabileceğimizi bilen var mı? Örneğin, düzenleme/güncellemeler yaparken dahil etmek istemediğim 'CreatedOn' alanına sahibim. Bu mümkün mü, EF Kodu İlk 4.1'de güncelleme işleminden alan seçici olarak hariç mi?Sütun Entity Framework 4.1'de ilke yükseltilemez Hariç Tutma Kodu İlk

+0

Bunu nasıl çözdünüz? Cevap sadece önerilerde bulunur. –

cevap

15

Ekli kuruluşlarla çalışıyorsanız EF, yalnızca değiştirilen alanlar için güncellemeler üretecektir. Müstakil varlıklar ile çalışıyorsanız, EF'in neyi değiştirdiğini manuel olarak söylemelisiniz. Bunu çağırırsanız, tüm özelliklerin değiştirilerek yapılması gerektiğini söylediğiniz EF diyorsunuz. Ama bunun yerine bu ararsanız:

context.Entry(youreEntity).Property(e => e.SomeProperty).IsModified = true; 

sadece SomeProperty değiştirilir diyecekler (sadece bu özellik güncellemede olacaktır). Tüm varlığı değiştirilmiş olarak işaretleyerek ve değiştirilmemesi gereken özellikleri seçerek tersine işlem yapıp yapamayacağınızdan emin değilim, ancak bunu kendiniz test edebilirsiniz.

CreatedOn veritabanında doldurulursa, DatabaseGeneratedOption.Identity olarak işaretleyebilir ve asla uygulamanız tarafından değiştirilmeyecektir.

+0

Seçme sütunu hariç tutmanın bir yolu var mı? Ben bir 'User' varlığım var ve' Parola: varbinary (32) 'sütununun sadece talep üzerine seçilmesini istiyorum, bu mümkün mü? – Shimmy

+2

Ters işlem de çalışır (en azından test ettiğim EF5'te). Bu, ilk önce "context.Entry (yourEntity) .State = EntityState.Modified" ve daha sonra "context.Entry (youreEntity) .Property (e => e.SomeProperty) .IsModified = false" işlevini ilk önce güncelleyebilmeniz anlamına gelir. Manuel olarak hariç tutulanlar dışındaki sütunlar. –

+0

@FlorinDumitrescu: Evet, EF5'te .NET 4.5 ile çalışıyor ancak .NET 4.0 ile çalışmıyor. –