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

tarafından Rick Anderson

Not

Visual Studio'nun en son sürümünü kullanarak bu öğreticinin güncelleştirilmiş bir sürümüne buradan ulaşabilirsiniz. Yeni öğreticide, bu öğreticide birçok geliştirme sağlayan ASP.NET Core MVC kullanılır.

Bu öğreticide, denetleyiciler ve görünümlerle ASP.NET Core MVC öğretildi. Razor Pages, web kullanıcı arabirimi oluşturmayı daha kolay ve daha üretken hale getiren sayfa tabanlı bir programlama modeli olan ASP.NET Core'de yeni bir alternatiftir. Razor Pages öğreticisini MVC sürümünden önce denemenizi öneririz. Razor Pages öğreticisi:

  • Takip etmek daha kolaydır.
  • Daha fazla özelliği kapsar.
  • Yeni uygulama geliştirme için tercih edilen yaklaşımdır.

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. Hangi veritabanının kullanılacağını belirtmeniz gerekmez; Entity Framework varsayılan olarak LocalDB'yi kullanır. Bu bölümde, uygulamanın Web.config dosyasına açıkça bir bağlantı dizesi ekleyeceğiz.

SQL Server Express LocalDB

LocalDB, SQL Server Express Veritabanı Altyapısı'nın isteğe bağlı olarak başlayan ve kullanıcı modunda çalışan basit bir sürümüdür. LocalDB, veritabanlarıyla .mdf dosyaları olarak çalışmanızı sağlayan özel bir SQL Server Express yürütme modunda çalışır. Genellikle, LocalDB veritabanı dosyaları bir web projesinin App_Data klasöründe tutulur.

SQL Server Express üretim web uygulamalarında kullanılması önerilmez. Bir web uygulaması IIS ile çalışacak şekilde tasarlanmadığından, özellikle LocalDB bir web uygulamasıyla üretim için kullanılmamalıdır. Ancak, bir LocalDB veritabanı kolayca SQL Server veya SQL Azure geçirilebilir.

Visual Studio 2017'de, LocalDB varsayılan olarak Visual Studio ile yüklenir.

Varsayılan olarak, Entity Framework nesne bağlam sınıfıyla (MovieDBContext bu proje için) aynı adlı bir bağlantı dizesi arar. Daha fazla bilgi için bkz. ASP.NET Web Uygulamaları için SQL Server Bağlantı Dizeleri.

Aşağıda gösterilen uygulama kök Web.config dosyasını açın. (Görünümler klasöründeki Web.config dosyası değil.)

Çözüm Gezgini penceresini ve Web noktası yapılandırmasının seçili olduğunu ve kırmızıyla daire içine alındığını gösteren ekran görüntüsü.

<connectionStrings> öğesini bulun:

Kodu ve bağlantı dizesi öğesinin kırmızıyla daire içine alındığını gösteren ekran görüntüsü.

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

<add name="MovieDBContext" 
   connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" 
   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)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-MvcMovie-fefdc1f0-bd81-4ce9-b712-93a062e01031.mdf" providerName="System.Data.SqlClient" />
  <add name="MovieDBContext" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" providerName="System.Data.SqlClient" />
</connectionStrings>

İki bağlantı dizesi birbirine çok benzer. İlk bağlantı dizesi adlandırılır DefaultConnection ve uygulamaya kimlerin erişebileceğini denetlemek için üyelik veritabanı için kullanılır. Eklediğiniz bağlantı dizesi, App_Data klasöründe bulunan Movie.mdf adlı bir LocalDB veritabanını belirtir. Üyelik, kimlik doğrulaması ve güvenlik hakkında daha fazla bilgi için bu öğreticide üyelik veritabanını kullanmayacağız. Kimlik doğrulaması ve SQL DB ile ASP.NET MVC uygulaması oluşturma ve Azure App Service dağıtma öğreticime bakın.

Bağlantı dizesinin adı DbContext sınıfının adıyla eşleşmelidir.

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ı dizesini MovieDBContext eklemeniz gerekmez. Bağlantı dizesi belirtmezseniz, Entity Framework users dizininde DbContext sınıfının tam adıyla (bu örnekte MvcMovie.Models.MovieDBContext) bir LocalDB veritabanı oluşturur. veritabanına istediğiniz gibi bir ad vekleyebilirsiniz. MDF son eki. Örneğin, veritabanına MyFilms.mdf adını verebiliriz.

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.