Önce Model

Bu video ve adım adım izlenecek yol, Entity Framework kullanarak Model First geliştirmeye giriş niteliğindedir. Model First, Entity Framework Tasarım Aracı kullanarak yeni bir model oluşturmanıza ve ardından modelden bir veritabanı şeması oluşturmanıza olanak tanır. Model bir EDMX dosyasında (.edmx uzantısı) depolanır ve Entity Framework Tasarım Aracı görüntülenebilir ve düzenlenebilir. Uygulamanızda etkileşimde olduğunuz sınıflar EDMX dosyasından otomatik olarak oluşturulur.

Videoyu izleme

Bu video ve adım adım izlenecek yol, Entity Framework kullanarak Model First geliştirmeye giriş niteliğindedir. Model First, Entity Framework Tasarım Aracı kullanarak yeni bir model oluşturmanıza ve ardından modelden bir veritabanı şeması oluşturmanıza olanak tanır. Model bir EDMX dosyasında (.edmx uzantısı) depolanır ve Entity Framework Tasarım Aracı görüntülenebilir ve düzenlenebilir. Uygulamanızda etkileşimde olduğunuz sınıflar EDMX dosyasından otomatik olarak oluşturulur.

Sunan: Rowan Miller

Video: WMV | MP4 | WMV (ZIP)

Önkoşullar

Bu kılavuzu tamamlamak için Visual Studio 2010 veya Visual Studio 2012 yüklü olmalıdır.

Visual Studio 2010 kullanıyorsanız NuGet'in de yüklü olması gerekir.

1. Uygulamayı Oluşturma

İşleri basit tutmak için veri erişimi gerçekleştirmek için Önce Model'i kullanan temel bir konsol uygulaması oluşturacağız:

  • Visual Studio’yu açın
  • Dosya -> Yeni -> Proje...
  • Sol menüden Ve Konsol Uygulaması'ndan Windows'ı seçin
  • Ad olarak ModelFirstSample girin
  • Tamam'ı seçin

2. Model Oluştur

Modelimizi oluşturmak için Visual Studio'nun bir parçası olan Entity Framework Tasarım Aracı kullanacağız.

  • Proje -> Yeni Öğe Ekle...

  • Sol menüden Veri'yi seçin ve ardından Varlık Veri Modeli'ni ADO.NET

  • Ad olarak BloggingModel girin ve Tamam'a tıklayın; bu işlem Varlık Veri Modeli Sihirbazı'nı başlatır

  • Boş Model'i seçin ve Son'a tıklayın

    Create Empty Model

Entity Framework Tasarım Aracı boş bir modelle açılır. Artık modele varlık, özellik ve ilişkilendirme eklemeye başlayabiliriz.

  • Tasarım yüzeyine sağ tıklayın ve Özellikler'i seçin

  • Özellikler penceresi Varlık Kapsayıcı Adı'nı BloggingContextolarak değiştirin. Bu, sizin için oluşturulacak türetilmiş bağlamın adıdır, bağlam veritabanıyla bir oturumu temsil eder ve verileri sorgulamamıza ve kaydetmemize olanak sağlar

  • Tasarım yüzeyine sağ tıklayın ve Yeni Ekle -> Varlık... öğesini seçin.

  • Varlık adı olarak Blog yazın ve anahtar adı olarak BlogKimliği'ni girin ve Tamam'a tıklayın

    Add Blog Entity

  • Tasarım yüzeyinde yeni varlığa sağ tıklayın ve Yeni Ekle -> Skaler Özellik'i seçin, özelliğin adı olarak Ad girin.

  • Url özelliği eklemek için bu işlemi yineleyin.

  • Tasarım yüzeyinde Url özelliğine sağ tıklayın ve Özellikler'i seçin, Özellikler penceresi Null atanabilir ayarını Trueolarak değiştirin. Bu, bir Blogu veritabanına url atamadan kaydetmemizi sağlar

  • Az önce öğrendiğiniz teknikleri kullanarak PostId anahtar özelliğine sahip bir Post varlığı ekleyin

  • Post varlığına Başlık ve İçerik skaler özellikleri ekleme

Artık birkaç varlığımız olduğuna göre, aralarında bir ilişkilendirme (veya ilişki) eklemenin zamanı geldi.

  • Tasarım yüzeyine sağ tıklayın ve Yeni Ekle -> İlişkilendirme... seçeneğini belirleyin.

  • İlişkinin bir ucunu Bir çokluğuyla Blog'a, diğer uç noktasını ise ÇokSayıda Posta ile Gönder'e getirin Bu, blogun çok sayıda Gönderisi olduğu ve bir Gönderinin bir Blog'a ait olduğu anlamına gelir

  • 'Post' Varlığına yabancı anahtar özellikleri ekle kutusunun işaretli olduğundan emin olun ve Tamam'a tıklayın

    Add Association MF

Artık veritabanı oluşturup verileri okumak ve yazmak için kullanabileceğimiz basit bir modelimiz var.

Model Initial

Visual Studio 2010'daki Ek Adımlar

Visual Studio 2010'da çalışıyorsanız, Entity Framework'ün en son sürümüne yükseltmek için izlemeniz gereken bazı ek adımlar vardır. Yükseltme, kullanımı çok daha kolay olan gelişmiş bir API yüzeyine ve en son hata düzeltmelerine erişmenizi sağladığından önemlidir.

İlk olarak, Entity Framework'ün en son sürümünü NuGet'ten almalıyız.

  • Proje –> NuGet Paketlerini Yönet...NuGet Paketlerini Yönet... seçeneğiniz yoksa NuGet'in en son sürümünü yüklemeniz gerekir
  • Çevrimiçi sekmesini seçin
  • EntityFramework paketini seçin
  • Yükle'ye tıklayın

Daha sonra, Entity Framework'ün sonraki sürümlerinde kullanıma sunulan DbContext API'sini kullanan kod oluşturmak için modelimizi değiştirmemiz gerekir.

  • EF Tasarım Aracı modelinizin boş bir noktasına sağ tıklayın ve Kod Oluşturma Öğesi Ekle... öğesini seçin.

  • Sol menüden Çevrimiçi Şablonlar'ı seçin ve DbContext araması yapın

  • C# için EF 5.x DbContext Oluşturucusunu seçin, ad olarak BloggingModel yazın ve Ekle'ye tıklayın

    DbContext Template

3. Veritabanını Oluşturma

Modelimiz göz önünde bulundurulduğunda Entity Framework, modeli kullanarak verileri depolamamıza ve almamıza olanak sağlayacak bir veritabanı şeması hesaplayabilir.

Visual Studio ile yüklenen veritabanı sunucusu, yüklediğiniz Visual Studio sürümüne bağlı olarak farklıdır:

  • Visual Studio 2010 kullanıyorsanız bir SQL Express veritabanı oluşturacaksınız.
  • Visual Studio 2012 kullanıyorsanız bir LocalDB veritabanı oluşturacaksınız.

Şimdi veritabanını oluşturalım.

  • Tasarım yüzeyine sağ tıklayın ve Modelden Veritabanı Oluştur... öğesini seçin .

  • Yeni Bağlan ion... öğesine tıklayın ve kullandığınız Visual Studio sürümüne bağlı olarak LocalDB veya SQL Express'i belirtin, veritabanı adı olarak ModelFirst.Blogging yazın.

    LocalDB Connection MF

    Sql Express Connection MF

  • Tamam'ı seçtiğinizde yeni veritabanı oluşturmak isteyip istemediğiniz sorulur ve Evet'i seçin

  • İleri'yi seçtiğinizde Entity Framework Tasarım Aracı veritabanı şemasını oluşturmak için bir betik hesaplar

  • Betik görüntülendikten sonra Son'a tıklayın ve betik projenize eklenir ve açılır

  • Betike sağ tıklayın ve Yürüt'e tıklayın, hangi Visual Studio sürümünü kullandığınıza bağlı olarak bağlanacağınız veritabanını belirtmeniz, LocalDB veya SQL Server Express belirtmeniz istenir

4. Veri Okuma ve Yazma

Artık bir modele sahip olduğumuza göre, bazı verilere erişmek için bu modeli kullanma zamanı geldi. Verilere erişmek için kullanacağımız sınıflar, EDMX dosyası temel alınarak sizin için otomatik olarak oluşturulur.

Bu ekran görüntüsü Visual Studio 2012'ye aittir. Visual Studio 2010 kullanıyorsanız BloggingModel.tt ve BloggingModel.Context.tt dosyaları EDMX dosyasının altında iç içe değil doğrudan projenizin altında olur.

Generated Classes

Aşağıda gösterildiği gibi Program.cs dosyasında Main yöntemini uygulayın. Bu kod bağlamımızın yeni bir örneğini oluşturur ve ardından bunu kullanarak yeni bir Blog ekler. Ardından, veritabanındaki tüm Blogları Başlığa göre alfabetik olarak sıralanmış olarak almak için bir LINQ sorgusu kullanır.

class Program
{
    static void Main(string[] args)
    {
        using (var db = new BloggingContext())
        {
            // Create and save a new Blog
            Console.Write("Enter a name for a new Blog: ");
            var name = Console.ReadLine();

            var blog = new Blog { Name = name };
            db.Blogs.Add(blog);
            db.SaveChanges();

            // Display all Blogs from the database
            var query = from b in db.Blogs
                        orderby b.Name
                        select b;

            Console.WriteLine("All blogs in the database:");
            foreach (var item in query)
            {
                Console.WriteLine(item.Name);
            }

            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        }
    }
}

Artık uygulamayı çalıştırabilir ve test edebilirsiniz.

Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...

5. Model Değişiklikleriyle ilgilenme

Şimdi modelimizde bazı değişiklikler yapma zamanı geldi. Bu değişiklikleri yaptığımızda veritabanı şemasını da güncelleştirmemiz gerekiyor.

Modelimize yeni bir Kullanıcı varlığı ekleyerek başlayacağız.

  • Anahtar adı olarak Kullanıcı Adı ve anahtarın özellik türü olarak Dize olan yeni bir Kullanıcı varlığı adı ekleyin

    Add User Entity

  • Tasarım yüzeyinde Kullanıcı Adı özelliğine sağ tıklayın ve Özellikler'i seçin, Özellikler penceresi MaxLength ayarını 50olarak değiştirin. Bu, kullanıcı adına depolanabilen verileri 50 karakterle kısıtlar

  • Kullanıcı varlığına DisplayName skaler özelliği ekleme

Artık güncelleştirilmiş bir modelimiz var ve veritabanını yeni Kullanıcı varlık türümüze uyacak şekilde güncelleştirmeye hazırız.

  • Tasarım yüzeyine sağ tıklayın ve Modelden Veritabanı Oluştur... öğesini seçin. Entity Framework, güncelleştirilmiş modeli temel alan bir şemayı yeniden oluşturmak için bir betik hesaplar.
  • Son’a tıklayın
  • Mevcut DDL betiğinin ve modelin eşleme ve depolama bölümlerinin üzerine yazılmasıyla ilgili uyarılar alabilirsiniz, bu iki uyarı için de Evet'e tıklayın
  • Veritabanını oluşturmak için güncelleştirilmiş SQL betiği sizin için açılır
    Oluşturulan betik tüm mevcut tabloları bırakır ve şemayı sıfırdan yeniden oluşturur. Bu, yerel geliştirme için işe yarayabilir, ancak önceden dağıtılmış olan bir veritabanına değişiklik göndermek için uygun değildir. Değişiklikleri zaten dağıtılmış bir veritabanında yayımlamanız gerekiyorsa, geçiş betiğini hesaplamak için betiği düzenlemeniz veya şema karşılaştırma aracını kullanmanız gerekir.
  • Betike sağ tıklayın ve Yürüt'e tıklayın, hangi Visual Studio sürümünü kullandığınıza bağlı olarak bağlanacağınız veritabanını belirtmeniz, LocalDB veya SQL Server Express belirtmeniz istenir

Özet

Bu kılavuzda, EF Tasarım Aracı bir model oluşturmamıza ve ardından bu modelden bir veritabanı oluşturmamıza olanak tanıyan Model First geliştirmesini inceledik. Ardından veritabanından bazı verileri okumak ve yazmak için modeli kullandık. Son olarak modeli güncelleştirdik ve ardından veritabanı şemasını modelle eşleşecek şekilde yeniden oluşturmuş olduk.