Aracılığıyla paylaş


Model Ekleme (2012)

tarafından Rick Anderson

Not

Bu öğreticinin ASP.NET MVC 5 ve Visual Studio 2013 kullanan güncelleştirilmiş bir sürümü burada mevcuttur. Daha güvenlidir, takip etmek çok daha kolaydır ve daha fazla özellik gösterir.

Bu bölümde, veritabanındaki filmleri yönetmek için bazı sınıflar ekleyeceksiniz. Bu sınıflar, ASP.NET MVC uygulamasının "model" bölümü olacaktır.

Bu model sınıflarını tanımlamak ve bunlarla çalışmak için Entity Framework olarak bilinen .NET Framework bir veri erişim teknolojisi kullanacaksınız. Entity Framework (genellikle EF olarak adlandırılır) Code First adlı bir geliştirme paradigması destekler. Code First, basit sınıflar yazarak model nesneleri oluşturmanıza olanak tanır. (Bunlar "düz eski CLR nesnelerinden" POCO sınıfları olarak da bilinir.) Daha sonra veritabanını sınıflarınızdan anında oluşturabilirsiniz ve bu da çok temiz ve hızlı bir geliştirme iş akışı sağlar.

Model Sınıfları Ekleme

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

Çözüm Gezgini penceresini gösteren ekran görüntüsü. Ekle seçeneği Modeller sağ tıklama menüsünde, Sınıf ise alt menüde seçilidir.

"Movie" sınıf adını girin.

Sınıfına aşağıdaki beş özelliği Movie ekleyin:

public class Movie 
{
    public int ID { get; set; }
    public string Title { get; set; }
    public DateTime ReleaseDate { get; set; }
    public string Genre { get; set; }
    public decimal Price { get; set; }
}

Veritabanındaki filmleri temsil etmek için sınıfını Movie kullanacağız. Bir Movie nesnenin her örneği veritabanı tablosundaki bir satıra karşılık gelir ve sınıfın Movie her özelliği tablodaki bir sütuna eşlenir.

Aynı dosyaya aşağıdaki MovieDBContext sınıfı ekleyin:

public class MovieDBContext : DbContext 
{
    public DbSet<Movie> Movies { get; set; } 
}

MovieDBContext sınıfı, veritabanındaki sınıf örneklerini getirme, depolama ve güncelleştirme Movie işlemlerini gerçekleştiren Entity Framework film veritabanı bağlamını temsil eder. , MovieDBContext Entity Framework tarafından sağlanan temel sınıftan türetilir DbContext .

ve DbSetöğesine başvurabilmek DbContext için dosyanın en üstüne aşağıdaki using deyimi eklemeniz gerekir:

using System.Data.Entity;

Movie.cs dosyasının tamamı aşağıda gösterilmiştir. (Gerekli olmayan çeşitli using deyimleri kaldırıldı.)

using System;
using System.Data.Entity;

namespace MvcMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }        
        public DateTime ReleaseDate { get; set; }        
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }

    public class MovieDBContext : DbContext
    {
        public DbSet<Movie> Movies { get; set; }
    }
}

Bağlantı Dizesi Oluşturma ve SQL Server LocalDB ile Çalışma

MovieDBContext Oluşturduğunuz sınıf, veritabanına bağlanma ve nesneleri veritabanı kayıtlarına eşleme Movie görevini işler. Yine de sorabileceğiniz sorulardan biri, bağlanacağı veritabanının nasıl belirtileceğidir. Bunu, uygulamanın Web.config dosyasına bağlantı bilgileri ekleyerek yapacaksınız.

Uygulama kök Web.config dosyasını açın. (Görünümler klasöründeki Web.config dosyası değil.) Kırmızıyla özetlenen Web.config dosyasını açın.

Çözüm Gezgini penceresini gösteren ekran görüntüsü. Web noktası yapılandırması kırmızıyla daire içine alınıyor.

Web.config dosyasındaki <connectionStrings> öğesine aşağıdaki bağlantı dizesini ekleyin.

<add name="MovieDBContext" 
   connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" 
   providerName="System.Data.SqlClient" 
/>

Aşağıdaki örnekte , yeni bağlantı dizesinin eklendiğiWeb.configdosyasının bir bölümü gösterilmektedir:

<connectionStrings>
  <add name="DefaultConnection" 
       connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcMovie-2012213181139;Integrated Security=true" 
       providerName="System.Data.SqlClient" 
  />    
  <add name="MovieDBContext" 
       connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" 
       providerName="System.Data.SqlClient" 
  /> 
</connectionStrings>

Bu küçük kod ve XML miktarı, film verilerini bir veritabanında göstermek ve depolamak için yazmanız gereken her şeydir.

Ardından, film verilerini görüntülemek ve kullanıcıların yeni MoviesController film listeleri oluşturmasına izin vermek için kullanabileceğiniz yeni bir sınıf oluşturacaksınız.