Aracılığıyla paylaş


Sabit Listesi Desteği - Önce Kod

Dekont

YALNıZCA EF5'e Doğru - Bu sayfada ele alınan özellikler, API'ler vb. Entity Framework 5'te sunulmuştur. Önceki bir sürümü kullanıyorsanız, bilgilerin bir kısmı veya tümü geçerli değildir.

Bu video ve adım adım izlenecek yol, Entity Framework Code First ile numaralandırma türlerinin nasıl kullanılacağını gösterir. Ayrıca bir LINQ sorgusunda numaralandırmaların nasıl kullanılacağını da gösterir.

Bu kılavuzda yeni bir veritabanı oluşturmak için Code First kullanılır, ancak mevcut bir veritabanıyla eşlemek için Önce Kod'u da kullanabilirsiniz.

Numaralandırma desteği Entity Framework 5'te kullanıma sunulmuştur. Sabit listeleri, uzamsal veri türleri ve tablo değerli işlevler gibi yeni özellikleri kullanmak için .NET Framework 4.5'i hedeflemeniz gerekir. Visual Studio 2012 varsayılan olarak .NET 4.5'i hedefler.

Entity Framework'te bir numaralandırma aşağıdaki temel türlere sahip olabilir: Byte, Int16, Int32, Int64 veya SByte.

Videoyu izleme

Bu videoda, Entity Framework Code First ile numaralandırma türlerinin nasıl kullanılacağı gösterilmektedir. Ayrıca bir LINQ sorgusunda numaralandırmaların nasıl kullanılacağını da gösterir.

Sunan: Julia Kornich

Video: WMV | MP4 | WMV (ZIP)

Önkoşullar

Bu kılavuzu tamamlamak için Visual Studio 2012, Ultimate, Premium, Professional veya Web Express sürümünün yüklü olması gerekir.

 

Projeyi ayarlama

  1. Visual Studio 2012'i açma
  2. Dosya menüsünde Yeni'nin üzerine gelin ve Proje'ye tıklayın
  3. Sol bölmede Visual C# öğesine tıklayın ve konsol şablonunu seçin
  4. Projenin adı olarak EnumCodeFirst yazın ve Tamam'a tıklayın

Önce Kod Kullanarak Yeni Model Tanımlama

Code First geliştirmesini kullanırken genellikle kavramsal (etki alanı) modelinizi tanımlayan .NET Framework sınıfları yazarak başlarsınız. Aşağıdaki kod Department sınıfını tanımlar.

Kod, DepartmentNames numaralandırmasını da tanımlar. Sabit listesi varsayılan olarak int türündedir. Department sınıfındaki Name özelliği DepartmentNames türündedir.

Program.cs dosyasını açın ve aşağıdaki sınıf tanımlarını yapıştırın.

public enum DepartmentNames
{
    English,
    Math,
    Economics
}     

public partial class Department
{
    public int DepartmentID { get; set; }
    public DepartmentNames Name { get; set; }
    public decimal Budget { get; set; }
}

 

DbContext Türetilmiş Türünü Tanımlama

Varlıkları tanımlamaya ek olarak, DbContext'ten türetilen ve DbSet<TEntity> özelliklerini kullanıma sunan bir sınıf tanımlamanız gerekir. DbSet<TEntity> özellikleri, bağlama modele hangi türleri eklemek istediğinizi bildirir.

DbContext türetilmiş türünün bir örneği, çalışma zamanında varlık nesnelerini yönetir. Bu, nesneleri veritabanındaki verilerle doldurma, değişiklik izleme ve verileri veritabanında kalıcı hale getirme gibi işlemleri içerir.

DbContext ve DbSet türleri EntityFramework derlemesinde tanımlanır. EntityFramework NuGet paketini kullanarak bu DLL'ye bir başvuru ekleyeceğiz.

  1. Çözüm Gezgini'da proje adına sağ tıklayın.
  2. NuGet Paketlerini Yönet... öğesini seçin .
  3. NuGet Paketlerini Yönet iletişim kutusunda Çevrimiçi sekmesini seçin ve EntityFramework paketini seçin.
  4. Yükle'ye tıklayın

EntityFramework derlemesine ek olarak System.ComponentModel.DataAnnotations ve System.Data.Entity derlemelerine de başvurular eklendiğini unutmayın.

Program.cs dosyasının en üstüne aşağıdaki using deyimini ekleyin:

using System.Data.Entity;

Program.cs dosyasına bağlam tanımını ekleyin. 

public partial class EnumTestContext : DbContext
{
    public DbSet<Department> Departments { get; set; }
}

 

Verileri Kalıcı Hale Getir ve Al

Main yönteminin tanımlandığı Program.cs dosyasını açın. Main işlevine aşağıdaki kodu ekleyin. Kod, bağlama yeni bir Department nesnesi ekler. Ardından verileri kaydeder. Kod ayrıca adı DepartmentNames.English olan bir Departman döndüren bir LINQ sorgusu yürütür.

using (var context = new EnumTestContext())
{
    context.Departments.Add(new Department { Name = DepartmentNames.English });

    context.SaveChanges();

    var department = (from d in context.Departments
                        where d.Name == DepartmentNames.English
                        select d).FirstOrDefault();

    Console.WriteLine(
        "DepartmentID: {0} Name: {1}",
        department.DepartmentID,  
        department.Name);
}

Uygulamayı derleyin ve çalıştırın. Program aşağıdaki çıkışı oluşturur:

DepartmentID: 1 Name: English

 

Oluşturulan Veritabanını Görüntüleme

Uygulamayı ilk kez çalıştırdığınızda, Entity Framework sizin için bir veritabanı oluşturur. Visual Studio 2012 yüklü olduğundan veritabanı LocalDB örneğinde oluşturulur. Varsayılan olarak, Entity Framework veritabanını türetilen bağlamın tam adından sonra (enumCodeFirst.EnumTestContext olan bu örnek için) adlandırabilir. Mevcut veritabanı sonraki zamanlarda kullanılacaktır.  

Veritabanı oluşturulduktan sonra modelinizde herhangi bir değişiklik yaparsanız, veritabanı şemasını güncelleştirmek için Code First Migrations kullanmanız gerektiğini unutmayın. Geçişleri kullanma örneği için bkz . Yeni Veritabanına İlk Kod.

Veritabanını ve verileri görüntülemek için aşağıdakileri yapın:

  1. Visual Studio 2012 ana menüsünde Görünüm ->SQL Server Nesne Gezgini'ni seçin.
  2. LocalDB sunucu listesinde değilse, SQL Server'da sağ fare düğmesine tıklayın ve SQL Server Ekle LocalDB örneğine bağlanmak için varsayılan Windows Kimlik Doğrulamasını kullan'ı seçin
  3. LocalDB düğümünü genişletme
  4. Yeni veritabanını görmek için Veritabanları klasörünü açın ve Bölüm tablosuna göz atın Not: Code First, numaralandırma türüne eşlenen bir tablo oluşturmaz
  5. Verileri görüntülemek için tabloya sağ tıklayın ve Verileri Görüntüle'yi seçin

Özet

Bu kılavuzda, Entity Framework Code First ile numaralandırma türlerinin nasıl kullanılacağını inceledik.