Veritabanını temel almak için Code First Migrations kullanınUse Code First Migrations to Seed the Database

, Mike te sonby Mike Wasson

Tamamlanmış projeyi indirDownload Completed Project

Bu bölümde, veritabanını test verileriyle temel almak için EF 'te Code First Migrations kullanacaksınız.In this section, you will use Code First Migrations in EF to seed the database with test data.

Araçlar menüsünde NuGet Paket Yöneticisi' ni ve ardından Paket Yöneticisi konsolu' nu seçin.From the Tools menu, select NuGet Package Manager, then select Package Manager Console. Paket Yöneticisi konsolu penceresinde, aşağıdaki komutu girin:In the Package Manager Console window, enter the following command:

Enable-Migrations

Bu komut, projenize geçişler adlı bir klasör ve geçişler klasöründe Configuration.cs adlı bir kod dosyası ekler.This command adds a folder named Migrations to your project, plus a code file named Configuration.cs in the Migrations folder.

Configuration.cs dosyasını açın.Open the Configuration.cs file. Aşağıdaki using ifadesini ekleyin.Add the following using statement.

using BookService.Models;

Ardından aşağıdaki kodu Configuration. tohum yöntemine ekleyin:Then add the following code to the Configuration.Seed method:

protected override void Seed(BookService.Models.BookServiceContext context)
{
    context.Authors.AddOrUpdate(x => x.Id,
        new Author() { Id = 1, Name = "Jane Austen" },
        new Author() { Id = 2, Name = "Charles Dickens" },
        new Author() { Id = 3, Name = "Miguel de Cervantes" }
        );

    context.Books.AddOrUpdate(x => x.Id,
        new Book() { Id = 1, Title = "Pride and Prejudice", Year = 1813, AuthorId = 1, 
            Price = 9.99M, Genre = "Comedy of manners" },
        new Book() { Id = 2, Title = "Northanger Abbey", Year = 1817, AuthorId = 1, 
            Price = 12.95M, Genre = "Gothic parody" },
        new Book() { Id = 3, Title = "David Copperfield", Year = 1850, AuthorId = 2, 
            Price = 15, Genre = "Bildungsroman" },
        new Book() { Id = 4, Title = "Don Quixote", Year = 1617, AuthorId = 3, 
            Price = 8.95M, Genre = "Picaresque" }
        );
}

Paket Yöneticisi konsolu penceresinde aşağıdaki komutları yazın:In the Package Manager Console window, type the following commands:

Add-Migration Initial
Update-Database

İlk komut veritabanını oluşturan kodu oluşturur ve ikinci komut bu kodu yürütür.The first command generates code that creates the database, and the second command executes that code. Veritabanı yerel olarak, LocalDBkullanılarak oluşturulur.The database is created locally, using LocalDB.

API 'YI keşfet (Isteğe bağlı)Explore the API (Optional)

Uygulamayı hata ayıklama modunda çalıştırmak için F5 tuşuna basın.Press F5 to run the application in debug mode. Visual Studio IIS Express başlar ve Web uygulamanızı çalıştırır.Visual Studio starts IIS Express and runs your web app. Daha sonra Visual Studio bir tarayıcı başlatır ve uygulamanın giriş sayfasını açar.Visual Studio then launches a browser and opens the app's home page.

Visual Studio bir Web projesi çalıştırdığında, bir bağlantı noktası numarası atar.When Visual Studio runs a web project, it assigns a port number. Aşağıdaki görüntüde, bağlantı noktası numarası 50524 ' dir.In the image below, the port number is 50524. Uygulamayı çalıştırdığınızda, farklı bir bağlantı noktası numarası görürsünüz.When you run the application, you'll see a different port number.

Giriş sayfası ASP.NET MVC kullanılarak uygulanır.The home page is implemented using ASP.NET MVC. Sayfanın üst kısmında, "API" yazan bir bağlantı vardır.At the top of the page, there is a link that says "API". Bu bağlantı sizi, Web API 'SI için otomatik olarak oluşturulan bir yardım sayfasına getirir.This link brings you to an auto-generated help page for the web API. (Bu yardım sayfasının nasıl oluşturulduğunu ve sayfaya kendi belgelerinizi nasıl ekleyebileceğiniz hakkında bilgi edinmek için bkz. ASP.NET Web API Için yardım sayfaları oluşturma.) İstek ve yanıt biçimi dahil olmak üzere API hakkındaki ayrıntıları görmek için yardım sayfası bağlantılarına tıklayabilirsiniz.(To learn how this help page is generated, and how you can add your own documentation to the page, see Creating Help Pages for ASP.NET Web API.) You can click on the help page links to see details about the API, including the request and response format.

API, veritabanında CRUD işlemlerine izin vermez.The API enables CRUD operations on the database. Aşağıdaki, API 'YI özetler.The following summarizes the API.

YazarlarAuthors
GET api/authorsGET api/authors Tüm yazarları al.Get all authors.
GET api/authors/{id}GET api/authors/{id} KIMLIĞE göre yazar alın.Get an author by ID.
POST /api/authorsPOST /api/authors Yeni bir yazar oluşturun.Create a new author.
PUT /api/authors/{id}PUT /api/authors/{id} Var olan bir yazarı güncelleştirin.Update an existing author.
DELETE /api/authors/{id}DELETE /api/authors/{id} Bir yazarı silin.Delete an author.
KitaplarBooks
GET /api/booksGET /api/books Tüm kitapları alın.Get all books.
GET /api/books/{id}GET /api/books/{id} KIMLIĞE göre bir kitap alın.Get a book by ID.
POST /api/booksPOST /api/books Yeni bir kitap oluşturun.Create a new book.
PUT /api/books/{id}PUT /api/books/{id} Mevcut bir kitabı güncelleştirin.Update an existing book.
DELETE /api/books/{id}DELETE /api/books/{id} Bir kitabı silin.Delete a book.

Veritabanını görüntüleme (Isteğe bağlı)View the Database (Optional)

Update-database komutunu çalıştırdığınızda EF veritabanını oluşturup Seed yöntemi olarak çağırılır.When you ran the Update-Database command, EF created the database and called the Seed method. Uygulamayı yerel olarak çalıştırdığınızda EF, LocalDBkullanır.When you run the application locally, EF uses LocalDB. Visual Studio 'da veritabanını görüntüleyebilirsiniz.You can view the database in Visual Studio. Görünüm menüsünde SQL Server Nesne Gezgini'ni seçin.From the View menu, select SQL Server Object Explorer.

Sunucuya Bağlan iletişim kutusunda, sunucu adı düzenleme kutusuna "(LocalDB) \v11.0" yazın.In the Connect to Server dialog, in the Server Name edit box, type "(localdb)\v11.0". Kimlik doğrulama seçeneğini "Windows kimlik doğrulaması" olarak bırakın.Leave the Authentication option as "Windows Authentication". Bağlan'a tıklayın.Click Connect.

Visual Studio, LocalDB 'ye bağlanır ve SQL Server Nesne Gezgini penceresinde var olan veritabanlarınızı gösterir.Visual Studio connects to LocalDB and shows your existing databases in the SQL Server Object Explorer window. EF 'in oluşturduğu tabloları görmek için düğümleri genişletebilirsiniz.You can expand the nodes to see the tables that EF created.

Verileri görüntülemek için bir tabloya sağ tıklayın ve verileri görüntüle' yi seçin.To view the data, right-click a table and select View Data.

Aşağıdaki ekran görüntüsünde kitaplar tablosu için sonuçlar gösterilmektedir.The following screenshot shows the results for the Books table. , Veritabanının çekirdek verilerle birlikte doldurulduğunu ve tablo, yazarlar tablosunun yabancı anahtarını içerdiğini unutmayın.Notice that EF populated the database with the seed data, and the table contains the foreign key to the Authors table.