Temel KaydetmeBasic Save

Bağlam ve varlık sınıflarınızı kullanarak veri eklemeyi, değiştirmeyi ve kaldırmayı öğrenin.Learn how to add, modify, and remove data using your context and entity classes.

İpucu

Bu makalenin örneğini GitHub'da görüntüleyebilirsiniz.You can view this article's sample on GitHub.

Veri EklemeAdding Data

Varlık sınıflarınızın yeni örneklerini eklemek için DbSet.Add yöntemini kullanın.Use the DbSet.Add method to add new instances of your entity classes. SaveChanges'ıaradiğinizde veriler veritabanına eklenir.The data will be inserted in the database when you call SaveChanges.

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öntemleri, İlgili Veriler bölümünde açıklandığı gibi, kendilerine geçen varlıkların tam grafiğinde çalışır.The Add, Attach, and Update methods all work on the full graph of entities passed to them, as described in the Related Data section. Alternatif olarak, EntityEntry.State özelliği sadece tek bir varlığın durumunu ayarlamak için kullanılabilir.Alternately, the EntityEntry.State property can be used to set the state of just a single entity. Örneğin, context.Entry(blog).State = EntityState.Modified.For example, context.Entry(blog).State = EntityState.Modified.

Verileri GüncellemeUpdating Data

EF, bağlam tarafından izlenen varolan bir varlıkta yapılan değişiklikleri otomatik olarak algılar.EF will automatically detect changes made to an existing entity that is tracked by the context. Bu, veritabanından yüklediğiniz/sorguladığınız varlıkları ve daha önce eklenen ve veritabanına kaydedilmiş varlıkları içerir.This includes entities that you load/query from the database, and entities that were previously added and saved to the database.

Yalnızca özelliklere atanan değerleri değiştirin ve ardından SaveChanges'ıarayın.Simply modify the values assigned to properties and then call SaveChanges.

using (var context = new BloggingContext())
{
    var blog = context.Blogs.First();
    blog.Url = "http://example.com/blog";
    context.SaveChanges();
}

Veri silmeDeleting Data

Varlık sınıflarınızın örneklerini silmek için DbSet.Remove yöntemini kullanın.Use the DbSet.Remove method to delete instances of your entity classes.

Varlık veritabanında zaten varsa, SaveChangessırasında silinir.If the entity already exists in the database, it will be deleted during SaveChanges. Varlık henüz veritabanına kaydedilmemişse (yani eklendikçe izlenir) o zaman bağlamdan kaldırılır ve SaveChanges çağrıldığında artık eklenmez.If the entity has not yet been saved to the database (that is, it is tracked as added) then it will be removed from the context and will no longer be inserted when SaveChanges is called.

using (var context = new BloggingContext())
{
    var blog = context.Blogs.First();
    context.Blogs.Remove(blog);
    context.SaveChanges();
}

Tek bir SaveChanges'ta Birden Çok İşlemMultiple Operations in a single SaveChanges

Birden çok Ekle/Güncelleştir/Kaldır işlemlerini SaveChangesiçin tek bir çağrıda birleştirebilirsiniz.You can combine multiple Add/Update/Remove operations into a single call to SaveChanges.

Not

Çoğu veritabanı sağlayıcısı için SaveChanges işlemseldir.For most database providers, SaveChanges is transactional. Bu, tüm işlemlerin başarılı olacağı veya başarısız olacağı ve işlemlerin hiçbir zaman kısmen uygulanamayacağı anlamına gelir.This means all the operations will either succeed or fail and the operations will never be left partially applied.

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.Last();
    context.Blogs.Remove(lastBlog);

    context.SaveChanges();
}