Yalıtılmış varlıklara ek olarak, modelinizde tanımlanan ilişkileri de kullanabilirsiniz.
İpucu
Bu makalenin örneğini GitHub'da görüntüleyebilirsiniz.
Yeni varlıkların grafiğini ekleme
Birkaç yeni ilgili varlık oluşturursanız, bunlardan birini bağlama eklemek diğerlerinin de eklenmesine neden olur.
Aşağıdaki örnekte blog ve ilgili üç gönderinin tümü veritabanına eklenir. Gönderiler bulunur ve eklenir, çünkü bunlara gezinti özelliği aracılığıyla Blog.Posts erişilebilir.
C#
using (var context = new BloggingContext())
{
var blog = new Blog
{
Url = "http://blogs.msdn.com/dotnet",
Posts = new List<Post>
{
new Post { Title = "Intro to C#" },
new Post { Title = "Intro to VB.NET" },
new Post { Title = "Intro to F#" }
}
};
context.Blogs.Add(blog);
await context.SaveChangesAsync();
}
İpucu
Yalnızca tek bir varlığın durumunu ayarlamak için EntityEntry.State özelliğini kullanın. Örneğin, context.Entry(blog).State = EntityState.Modified.
İlgili varlık ekleme
Bağlam tarafından zaten izlenen bir varlığın gezinti özelliğinden yeni bir varlığa başvurursanız, varlık bulunur ve veritabanına eklenir.
Aşağıdaki örnekte varlık, veritabanından post getirilen varlığın Posts özelliğine eklendiğinden blog eklenir.
C#
using (var context = new BloggingContext())
{
var blog = await context.Blogs.Include(b => b.Posts).FirstAsync();
var post = new Post { Title = "Intro to EF Core" };
blog.Posts.Add(post);
await context.SaveChangesAsync();
}
İlişkileri değiştirme
Bir varlığın gezinti özelliğini değiştirirseniz, veritabanındaki yabancı anahtar sütununda ilgili değişiklikler yapılır.
Aşağıdaki örnekte, post gezinti özelliği işaret blogetmek üzere ayarlandığından varlık yeni blog varlığa Blog ait olacak şekilde güncelleştirilir. blog Ayrıca, bağlam (post ) tarafından zaten izlenen bir varlığın gezinti özelliği tarafından başvurulmuş yeni bir varlık olduğundan veritabanına eklenecektir.
C#
using (var context = new BloggingContext())
{
var blog = new Blog { Url = "http://blogs.msdn.com/visualstudio" };
var post = await context.Posts.FirstAsync();
post.Blog = blog;
await context.SaveChangesAsync();
}
İlişkileri kaldırma
başvuru gezintisini olarak ayarlayarak veya ilgili varlığı koleksiyon gezintisinden nullkaldırarak ilişkiyi kaldırabilirsiniz.
İlişkinin kaldırılması, ilişkide yapılandırılan art arda silme davranışına göre bağımlı varlık üzerinde yan etkilere neden olabilir.
Varsayılan olarak, gerekli ilişkiler için art arda silme davranışı yapılandırılır ve alt/bağımlı varlık veritabanından silinir. İsteğe bağlı ilişkiler için, art arda silme varsayılan olarak yapılandırılmaz, ancak yabancı anahtar özelliği null olarak ayarlanır.
Art arda silme davranışlarının nasıl çalıştığı, açıkça nasıl yapılandırılabildiği ve kurala göre nasıl seçildiği hakkında daha fazla bilgi için bkz . Art Arda Silme .
Aşağıdaki örnekte, ile Postarasındaki Blog ilişkide art arda silme yapılandırıldığından post varlık veritabanından silinir.
C#
using (var context = new BloggingContext())
{
var blog = await context.Blogs.Include(b => b.Posts).FirstAsync();
var post = blog.Posts.First();
blog.Posts.Remove(post);
await context.SaveChangesAsync();
}
GitHub'da bizimle işbirliği yapın
Bu içeriğin kaynağı GitHub'da bulunabilir; burada ayrıca sorunları ve çekme isteklerini oluşturup gözden geçirebilirsiniz. Daha fazla bilgi için katkıda bulunan kılavuzumuzu inceleyin.
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Bu modül, veri erişim projesi oluşturma adımları boyunca size yol gösterir. Entity Framework Core (EF Core) kullanarak ilişkisel bir veritabanına bağlanır ve oluşturma, okuma, güncelleştirme ve silme (CRUD) sorguları oluşturursunuz.