Aracılığıyla paylaş


DbSet'leri Tanımlama

Code First iş akışıyla geliştirme yaparken veritabanıyla oturumunuzu temsil eden ve modelinizdeki her tür için bir DbSet kullanıma sunan türetilmiş bir DbContext tanımlarsınız. Bu konu, DbSet özelliklerini tanımlamanın çeşitli yollarını kapsar.

DbSet özellikleriyle DbContext

Code First örneklerinde gösterilen yaygın durum, modelinizin varlık türleri için genel otomatik DbSet özelliklerine sahip bir DbContext'e sahip olmaktır. Örnek:

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
}

İlk Kod modunda kullanıldığında, bloglar ve Gönderiler varlık türleri olarak yapılandırılır ve bunlardan erişilebilen diğer türler yapılandırılır. Ayrıca DbContext, uygun DbSet'in bir örneğini ayarlamak için bu özelliklerin her biri için ayarlayıcıyı otomatik olarak çağırır.

IDbSet özellikleriyle DbContext

Sahte veya sahte oluşturma gibi durumlarda, küme özelliklerinizi bir arabirim kullanarak bildirmenin daha yararlı olduğu durumlar vardır. Bu gibi durumlarda DbSet yerine IDbSet arabirimi kullanılabilir. Örnek:

public class BloggingContext : DbContext
{
    public IDbSet<Blog> Blogs { get; set; }
    public IDbSet<Post> Posts { get; set; }
}

Bu bağlam, ayarlanan özellikleri için DbSet sınıfını kullanan bağlamla tam olarak aynı şekilde çalışır.

Salt okunur ayarlanmış özelliklere sahip DbContext

DbSet veya IDbSet özellikleriniz için genel ayarlayıcıları kullanıma açmak istemiyorsanız, bunun yerine salt okunur özellikler oluşturabilir ve küme örneklerini kendiniz oluşturabilirsiniz. Örnek:

public class BloggingContext : DbContext
{
    public DbSet<Blog> Blogs
    {
        get { return Set<Blog>(); }
    }

    public DbSet<Post> Posts
    {
        get { return Set<Post>(); }
    }
}

DbContext'in Set yönteminden döndürülen DbSet örneğini önbelleğe aldığından, bu özelliklerin her çağrıldığında aynı örneği döndüreceğini unutmayın.

Code First için varlık türlerinin bulunması, burada genel alıcıları ve ayarlayıcıları olan özelliklerde olduğu gibi çalışır.