Database First

Bu video ve adım adım yönergeler, Entity Framework kullanarak Database First geliştirmeye yönelik bir giriş sağlar. Database First, varolan bir veritabanından bir modele ters mühendislik yapmanıza olanak sağlar. Model bir EDMX dosyasında (. edmx uzantılı) depolanır ve Entity Framework Designer görüntülenebilir ve düzenlenebilir. Uygulamanızda etkileşimde bulunan sınıflar, EDMX dosyasından otomatik olarak oluşturulur.

Videoyu izleme

Bu videoda Entity Framework kullanarak Database First geliştirmeye bir giriş sunulmaktadır. Database First, varolan bir veritabanından bir modele ters mühendislik yapmanıza olanak sağlar. Model bir EDMX dosyasında (. edmx uzantılı) depolanır ve Entity Framework Designer görüntülenebilir ve düzenlenebilir. Uygulamanızda etkileşimde bulunan sınıflar, EDMX dosyasından otomatik olarak oluşturulur.

Sunulma ölçütü: Rowa Miller

Video: WMVMP4WMV (ZIP)

Önkoşullar

bu izlenecek yolu tamamlamak için en az Visual Studio 2010 veya Visual Studio 2012 yüklemiş olmanız gerekir.

Visual Studio 2010 kullanıyorsanız, NuGet da yüklemiş olmanız gerekir.

 

1. var olan bir veritabanını oluşturun

Genellikle, var olan bir veritabanını hedeflerken zaten oluşturulur, ancak bu izlenecek yol için, erişmek üzere bir veritabanı oluşturulması gerekir.

Visual Studio ile yüklenen veritabanı sunucusu, yüklemiş olduğunuz Visual Studio sürümüne bağlı olarak farklılık gösteren bir sürümdür:

  • Visual Studio 2010 kullanıyorsanız SQL bir Express veritabanı oluşturursunuz.
  • Visual Studio 2012 kullanıyorsanız, localdb veritabanı oluşturursunuz.

 

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

  • Visual Studio’yu açın

  • Görünüm- Sunucu Gezgini

  • Veri bağlantıları ' na sağ tıklayın - bağlantı ekle...

  • Sunucu Gezgini bir veritabanına bağlı değilseniz, veri kaynağı olarak Microsoft SQL Server seçmeniz gerekir

    Veri kaynağını seçin

  • ' i yüklemiş olduğunuza bağlı olarak localdb veya SQL Express 'e Bağlan ve veritabanı adı olarak databasefirst. blog yazın

    SQL Express bağlantı DF

    LocalDB bağlantısı DF

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

    Veritabanı oluştur Iletişim kutusu

  • Yeni veritabanı artık Sunucu Gezgini görüntülenir, sağ tıklayıp Yeni sorgu ' yı seçin.

  • aşağıdaki SQL yeni sorguya kopyalayın, ardından sorguya sağ tıklayıp yürüt ' ü seçin.

CREATE TABLE [dbo].[Blogs] (
    [BlogId] INT IDENTITY (1, 1) NOT NULL,
    [Name] NVARCHAR (200) NULL,
    [Url]  NVARCHAR (200) NULL,
    CONSTRAINT [PK_dbo.Blogs] PRIMARY KEY CLUSTERED ([BlogId] ASC)
);

CREATE TABLE [dbo].[Posts] (
    [PostId] INT IDENTITY (1, 1) NOT NULL,
    [Title] NVARCHAR (200) NULL,
    [Content] NTEXT NULL,
    [BlogId] INT NOT NULL,
    CONSTRAINT [PK_dbo.Posts] PRIMARY KEY CLUSTERED ([PostId] ASC),
    CONSTRAINT [FK_dbo.Posts_dbo.Blogs_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [dbo].[Blogs] ([BlogId]) ON DELETE CASCADE
);

2. uygulamayı oluşturun

Şeyleri basit tutmak için, veri erişimi gerçekleştirmek üzere Database First kullanan temel bir konsol uygulaması oluşturacağız:

  • Visual Studio’yu açın
  • Dosya- Yeni- > Project...
  • sol menü ve konsol uygulamasındanWindows seçin
  • Ad olarak Databasefirstsample yazın
  • Tamam'ı seçin

 

3. tersine mühendislik modeli

modelimizi oluşturmak için Visual Studio bir parçası olarak dahil edilen Entity Framework Designer kullanacağız.

  • Project- Yeni öğe Ekle...

  • sol menüden verileri seçin ve ardından ADO.NET Varlık Veri Modeli

  • Ad olarak BloggingModel girin ve Tamam 'a tıklayın

  • Bu, varlık veri modeli Sihirbazı 'nı başlatır

  • Veritabanından oluştur ' u seçin ve İleri ' ye tıklayın.

    Sihirbaz 1. adım

  • İlk bölümde oluşturduğunuz veritabanına bağlantıyı seçin, bağlantı dizesinin adı olarak BloggingContext girin ve İleri ' ye tıklayın.

    Sihirbaz 2. adım

  • Tüm tabloları içeri aktarmak için ' tablolar ' seçeneğinin yanındaki onay kutusuna tıklayın ve ' son ' a tıklayın

    Sihirbaz 3. adım

 

Tersine mühendislik işlemi tamamlandıktan sonra, yeni model projenize eklenir ve Entity Framework Designer görüntülemeniz için açılır. Veritabanına yönelik bağlantı ayrıntılarına sahip bir App.config dosyası da projenize eklenmiştir.

Ilk model

Visual Studio 2010 ' de ek adımlar

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

İlk olarak, NuGet Entity Framework en son sürümünü edinmemiz gerekiyor.

  • Project: NuGet paketlerini yönet...Manage NuGet Packages... seçeneğine sahip değilseniz NuGet en son sürümünü yüklemelisiniz
  • Çevrimiçi sekmesini seçin
  • EntityFramework paketini seçin
  • Install 'a tıklayın

Bundan sonra, Entity Framework sonraki sürümlerinde tanıtılan DbContext API 'sini kullanan kodu oluşturmak için modelimizi değiştirmemiz gerekiyor.

  • EF Designer 'daki modelinizin boş bir noktasına sağ tıklayıp kod oluşturma öğesi Ekle... seçeneğini belirleyin.

  • Sol menüden çevrimiçi şablonlar ' ı seçin ve DbContext ' i arayın

  • C# için EF 5. x DbContext oluşturucusunuseçin, ad olarak BloggingModel girin ve Ekle ' ye tıklayın.

    DbContext şablonu

 

4. & yazma verisi okunuyor

Artık bir modelimiz olduğuna göre, bazı verilere erişmek için bunu kullanmanın zamanı. Verilere erişmek için kullanacağınız sınıflar, EDMX dosyasına bağlı olarak sizin için otomatik olarak oluşturulur.

bu ekran görüntüsü Visual Studio 2012 ' den Visual Studio 2010 ' i 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 olacaktır.

Oluşturulan sınıflar DF

 

Ana yöntemi aşağıda gösterildiği gibi program. cs ' de uygulayın. Bu kod, bağlamımız yeni bir örnek oluşturur ve yeni bir blog eklemek için onu kullanır. Daha sonra, bir LINQ sorgusu kullanarak, veritabanındaki tüm blogları başlık sırasına göre sıralanmış olarak alı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();
        }
    }
}

Şimdi 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. veritabanı değişiklikleriyle ilgilenme

Artık veritabanı şemanızda bazı değişiklikler yapmanız zaman alabilir. bu değişiklikleri yaparken, bu değişiklikleri yansıtacak şekilde modelimizi de güncelleştirmeniz gerekir.

İlk adım, veritabanı şemasında bazı değişiklikler yapmak için kullanılır. Şemaya bir kullanıcı tablosu ekleyeceğiz.

  • Sunucu Gezgini ve Yeni sorgu ' yı seçin .
  • aşağıdaki SQL yeni sorguya kopyalayın, ardından sorguya sağ tıklayıp yürüt ' ü seçin.
CREATE TABLE [dbo].[Users]
(
    [Username] NVARCHAR(50) NOT NULL PRIMARY KEY,  
    [DisplayName] NVARCHAR(MAX) NULL
)

Artık şema güncellendiğinden, modelin bu değişikliklerle güncelleştirilmesi zaman atalım.

  • EF Designer 'daki modelinizin boş bir noktasına sağ tıklayın ve ' veritabanını güncelleştir... ' seçeneğini belirleyin, bu işlem güncelleştirme sihirbazını başlatır

  • Güncelleştirme sihirbazının Ekle sekmesinde tablolar ' ın yanındaki kutuyu işaretleyin, bundan sonra şemadan yeni tablolar eklemek istiyoruz. Yenile sekmesi, modelde, güncelleştirme sırasında değişiklikler için denetlenecek tüm mevcut tabloları gösterir. Silme sekmeleri şemadan kaldırılan tüm tabloları gösterir ve güncelleştirmenin bir parçası olarak modelden de kaldırılır. Bu iki sekmede bulunan bilgiler otomatik olarak algılanır ve yalnızca bilgilendirme amacıyla sağlanır, hiçbir ayarı değiştiremezsiniz.

    Sihirbazı Yenile

  • Güncelleştirme sihirbazında son ' a tıklayın

 

Model artık veritabanına eklediğimiz Kullanıcı tablosuyla eşleşen yeni bir kullanıcı varlığı içerecek şekilde güncelleştirilir.

Model güncelleştirildi

Özet

Bu kılavuzda, var olan bir veritabanını temel alan EF tasarımcısında bir model oluşturmamızı sağlayan Database First geliştirmeyi inceledik. Daha sonra bu modeli veritabanından bazı verileri okumak ve yazmak için kullandık. Son olarak, modeli veritabanı şemasında yaptığımız değişiklikleri yansıtacak şekilde güncelleştirdik.