Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
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.
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.
Scaffold Ekle iletişim kutusunda "Entity Framework kullanarak eylemlerle Web API 2 Denetleyicisi" seçeneğini belirleyin. Ekle'yi tıklatın.
Denetleyici Ekle iletişim kutusunda aşağıdakileri yapın:
-
Model sınıfı açılan listesinden
Authorsınıfını seçin. (Açılan listede bu öğeyi görmüyorsanız projeyi oluşturduğunuzdan emin olun.) - "Zaman uyumsuz denetleyici eylemlerini kullan" seçeneğini işaretleyin.
- Denetleyici adını "AuthorsController" olarak bırakın.
- Veri Bağlamı Sınıfı'nın yanındaki artı (+) düğmesine tıklayın.
Yeni Veri Bağlamı iletişim kutusunda varsayılan adı bırakın ve Ekle'ye tıklayın.
Denetleyici Ekle iletişim kutusunu tamamlamak için Ekle'ye tıklayın. İletişim kutusu projenize iki sınıf ekler:
-
AuthorsControllerbir 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.
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.