Model ve Denetleyici Ekleme

Tamamlanan Projeyi İndir

Bu bölümde, veritabanı varlıklarını tanımlayan model sınıfları ekleyeceğiz. Ardından bu varlıklar üzerinde CRUD işlemleri gerçekleştiren Web API denetleyicileri ekleyebilirsiniz.

Model Sınıfları Ekleme

Bu öğreticide, Entity Framework 'e (EF) "Code First" yaklaşımını kullanarak veritabanını oluşturacağız. Code First ile veritabanı tablolarına karşılık gelen C# sınıfları yazarsınız ve EF veritabanını oluşturur. (Daha fazla bilgi için bkz . Entity Framework Geliştirme Yaklaşımları.)

İlk olarak etki alanı nesnelerimizi POCO'lar (düz eski CLR nesneleri) olarak tanımlıyoruz. Aşağıdaki POCO'ları oluşturacağız:

  • Yazar
  • Kitap

Çözüm Gezgini'nde Modeller klasörüne sağ tıklayın. Ekle'yi ve ardından Sınıf'ı seçin. sınıfını Authoradlandırın.

Mavi renkle vurgulanmış Modeller klasörünü ve sarı renkle vurgulanmış Ekle ve Sınıf menü öğelerini gösteren Çözüm Gezgini klasörünün ekran görüntüsü.

Author.cs içindeki tüm ortak kodu aşağıdaki kodla değiştirin.

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace BookService.Models
{
    public class Author
    {
        public int Id { get; set; }
        [Required]
        public string Name { get; set; }
    }
}

aşağıdaki kodla adlı Bookbaşka bir sınıf ekleyin.

using System.ComponentModel.DataAnnotations;

namespace BookService.Models
{
    public class Book
    {
        public int Id { get; set; }
        [Required]
        public string Title { get; set; }
        public int Year { get; set; }
        public decimal Price { get; set; }
        public string Genre { get; set; }

        // Foreign Key
        public int AuthorId { get; set; }
        // Navigation property
        public Author Author { get; set; }
    }
}

Entity Framework, veritabanı tabloları oluşturmak için bu modelleri kullanır. Her model için Id özelliği, veritabanı tablosunun birincil anahtar sütunu olur.

Book sınıfında, AuthorId tablosunda, Author tablosuna bir yabancı anahtar tanımlar. (Basitlik açısından, her kitabın tek bir yazarı olduğunu varsayıyorum.) Kitap sınıfı, ilgili Authoröğesine yönelik bir gezinti özelliği de içerir. İlgili Author koduna erişmek için gezinme özelliğini kullanabilirsiniz. 4. kısımdaki Varlık İlişkilerini İşleme bölümünde gezinti özellikleri hakkında daha fazla bilgi alıyorum.

Web API Denetleyicileri Ekleme

Bu bölümde CRUD işlemlerini (oluşturma, okuma, güncelleştirme ve silme) destekleyen Web API denetleyicileri ekleyeceğiz. Denetleyiciler, veritabanı katmanıyla iletişim kurmak için Entity Framework kullanır.

İlk olarak Denetleyiciler/ValuesController.cs dosyasını silebilirsiniz. Bu dosya örnek bir Web API denetleyicisi içeriyor, ancak bu öğretici için buna ihtiyacınız yok.

Silinmesi gerektiğini belirten Değer Denetleyicileri dot c s dosyasının kırmızı renkle vurgulandığı Çözüm Gezgini penceresinin ekran görüntüsü.

Ardından projeyi derleyin. Web API iskelesi model sınıflarını bulmak için yansıma kullanır, bu nedenle derlenmiş derlemeye ihtiyaç duyar.

Çözüm Gezgini'nde Denetleyiciler klasörüne sağ tıklayın. Ekle'yi ve ardından Denetleyici'yi seçin.

Denetleyiciler klasörünün ve Ekle ve Denetleyici menü öğelerinin mavi ve sarı renkle vurgulandığı Çözüm Gezgini penceresinin ekran görüntüsü.

Scaffold Ekle iletişim kutusunda "Entity Framework kullanarak eylemlerle Web API 2 Denetleyicisi" seçeneğini belirleyin. Ekle'yi tıklatın.

Entity Framework kullanan eylemlerin mavi renkle vurgulandığı Web A P I 2 Denetleyicisini gösteren yapı iskelesi ekle iletişim kutusunun ekran görüntüsü.

Denetleyici Ekle iletişim kutusunda aşağıdakileri yapın:

  1. Model sınıfı açılan listesinden Author sınıfını seçin. (Açılan listede bu öğeyi görmüyorsanız projeyi oluşturduğunuzdan emin olun.)
  2. "Zaman uyumsuz denetleyici eylemlerini kullan" seçeneğini işaretleyin.
  3. Denetleyici adını "AuthorsController" olarak bırakın.
  4. Veri Bağlamı Sınıfı'nın yanındaki artı (+) düğmesine tıklayın.

Artı düğmesinin kırmızıyla daire içine alınıp, Model sınıfı açılır listesinde Author sınıfının seçili olduğunu gösteren Add Controller iletişim kutusunun ekran görüntüsü.

Yeni Veri Bağlamı iletişim kutusunda varsayılan adı bırakın ve Ekle'ye tıklayın.

Yeni veri bağlamı türü alanında varsayılan adı gösteren Yeni Veri Bağlamı iletişim kutusunun ekran görüntüsü.

Denetleyici Ekle iletişim kutusunu tamamlamak için Ekle'ye tıklayın. İletişim kutusu projenize iki sınıf ekler:

  • AuthorsController bir Web API denetleyicisi tanımlar. Denetleyici, istemcilerin yazar listesinde CRUD işlemleri gerçekleştirmek için kullandığı REST API'yi uygular.
  • BookServiceContext ç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 öğesinden devralır.

Solution Explorer penceresinin ekran görüntüsü, Authors Controller dot c s dosyası ve Book Service Context dot c s dosyası kırmızıyla daire içine alınmış.

Bu noktada projeyi yeniden derleyin. Şimdi varlıklar için bir API denetleyicisi eklemek için Book aynı adımları izleyin. Bu kez model sınıfı için öğesini seçin Book ve veri bağlam sınıfı için mevcut BookServiceContext sınıfı seçin. (Yeni bir veri bağlamı oluşturmayın.) Denetleyiciyi eklemek için Ekle'ye tıklayın.

Model sınıfı açılan menüsünde Kitap modeli sınıfının seçili olduğu Kontrolcü Ekle penceresinin ekran görüntüsü.