Temel Kaydetme
Bağlam ve varlık sınıflarınızı kullanarak veri ekleme, değiştirme ve kaldırmayı öğrenin.
İpucu
Bu makalenin örneğini daha sonra GitHub.
Veri Ekleme
Varlık sınıflarının yeni örneklerini eklemek için DbSet.Add yöntemini kullanın. SaveChanges çağırıldığında veriler veritabanına eklenir.
using (var context = new BloggingContext())
{
var blog = new Blog { Url = "http://example.com" };
context.Blogs.Add(blog);
context.SaveChanges();
}
İpucu
Ekle, Ekle ve Güncelleştir yöntemlerinin hepsi, İlgili Veriler bölümünde açıklandığı gibi, onlara geçirilen varlıkların tam grafı üzerinde çalışır. Alternatif olarak, EntityEntry.State özelliği yalnızca tek bir varlığın durumunu ayarlamak için kullanılabilir. Örneğin, context.Entry(blog).State = EntityState.Modified.
Verileri Güncelleştirme
EF, bağlam tarafından izilen mevcut bir varlığa yapılan değişiklikleri otomatik olarak algılar. Bu, veritabanından yükle/sorgulana varlıkları ve daha önce veritabanına eklenmiş ve kaydedilmiş varlıkları içerir.
Özelliklere atanan değerleri değiştirmeniz ve ardından SaveChangesçağrısı yapmanız gerekir.
using (var context = new BloggingContext())
{
var blog = context.Blogs.First();
blog.Url = "http://example.com/blog";
context.SaveChanges();
}
Veri silme
Varlık sınıflarının örneklerini silmek için DbSet.Remove yöntemini kullanın.
Varlık veritabanında zaten varsa SaveChangessırasında silinir. Varlık henüz veritabanına kaydedilmişse (yani eklendi olarak izleniyorsa) bağlamdan kaldırılır ve SaveChanges çağrıldında eklenmez.
using (var context = new BloggingContext())
{
var blog = context.Blogs.First();
context.Blogs.Remove(blog);
context.SaveChanges();
}
Tek bir SaveChanges'te Birden Çok İşlem
Birden çok Ekle/Güncelleştir/Kaldır işlemlerini SaveChanges için tek bir çağrıda birleştirin.
Not
Çoğu veritabanı sağlayıcısı için SaveChanges işlemseldir. Bu, tüm işlemlerin başarılı veya başarısız olduğu ve işlemlerin hiçbir zaman kısmen uygulanmayacak olduğu anlamına gelir.
using (var context = new BloggingContext())
{
// seeding database
context.Blogs.Add(new Blog { Url = "http://example.com/blog" });
context.Blogs.Add(new Blog { Url = "http://example.com/another_blog" });
context.SaveChanges();
}
using (var context = new BloggingContext())
{
// add
context.Blogs.Add(new Blog { Url = "http://example.com/blog_one" });
context.Blogs.Add(new Blog { Url = "http://example.com/blog_two" });
// update
var firstBlog = context.Blogs.First();
firstBlog.Url = "";
// remove
var lastBlog = context.Blogs.OrderBy(e => e.BlogId).Last();
context.Blogs.Remove(lastBlog);
context.SaveChanges();
}