Aracılığıyla paylaş


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(EF) için "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ımlayacağız. Aşağıdaki POCO'ları oluşturacağız:

  • Yazma
  • Book

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

Mavi renkle vurgulanmış Models 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 dosyasındaki 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 bir yabancı anahtar Author tanımlar. (Basitlik açısından, her kitabın tek bir yazarı olduğunu varsayıyorum.) Kitap sınıfı, ilgili Authoriçin bir gezinti özelliği de içerir. İlgili koda erişmek Author için gezinti özelliğini kullanabilirsiniz. 4. bölümde Varlık İlişkilerini İşleme bölümünde gezinti özellikleri hakkında daha fazla bilgi söylerim.

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 Controllers/ValuesController.cs dosyasını silebilirsiniz. Bu dosya örnek bir Web API denetleyicisi içerir, ancak bu öğretici için gerekli değildir.

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

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

Çözüm Gezgini'da 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ü.

İskele Ekle iletişim kutusunda "Eylemlerle Web API 2 Denetleyicisi, Entity Framework kullanarak" seçeneğini belirleyin. Ekle'ye tıklayı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 listesinde sınıfı seçinAuthor. (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çılan listesinde Seçilen Author sınıfını gösteren Denetleyici Ekle 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ı sırasında varlık nesnelerini yönetir. Bu, nesneleri veritabanındaki verilerle doldurmayı, değişiklik izlemeyi ve veritabanında kalıcı hale getirmeyi içerir. 'den DbContextdevralır.

Yazar Denetleyicisi nokta c s dosyasının ve Kitap Hizmeti Bağlamı nokta c s dosyasının kırmızı daire içine alınmış olduğu Çözüm Gezgini penceresinin ekran görüntüsü.

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 veri bağlamı oluşturmayın.) Denetleyiciyi eklemek için Ekle'ye tıklayın.

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