Bagikan melalui


Membuat String Koneksi dan Bekerja dengan SQL Server LocalDB

oleh Rick Anderson

Catatan

Versi terbaru dari tutorial ini tersedia di sini menggunakan versi terbaru Visual Studio. Tutorial baru menggunakan ASP.NET Core MVC, yang memberikan banyak peningkatan atas tutorial ini.

Tutorial ini mengajarkan ASP.NET Core MVC dengan pengontrol dan tampilan. Razor Pages adalah alternatif baru dalam ASP.NET Core, model pemrograman berbasis halaman yang membuat membangun UI web lebih mudah dan lebih produktif. Kami sarankan Anda mencoba tutorial Razor Pages sebelum versi MVC. Tutorial Halaman Razor:

  • Lebih mudah diikuti.
  • Mencakup lebih banyak fitur.
  • Adalah pendekatan yang disukai untuk pengembangan aplikasi baru.

Membuat String Koneksi dan Bekerja dengan SQL Server LocalDB

Kelas MovieDBContext yang Anda buat menangani tugas menyambungkan ke database dan memetakan Movie objek ke rekaman database. Namun, satu pertanyaan yang mungkin Anda tanyakan adalah cara menentukan database mana yang akan disambungkannya. Anda sebenarnya tidak perlu menentukan database mana yang akan digunakan, Entity Framework akan default menggunakan LocalDB. Di bagian ini kita akan secara eksplisit menambahkan string koneksi dalam file Web.config aplikasi.

LocalDB SQL Server Express

LocalDB adalah versi ringan dari mesin database SQL Server Express yang dimulai sesuai permintaan dan berjalan dalam mode pengguna. LocalDB berjalan dalam mode eksekusi khusus SQL Server Express yang memungkinkan Anda bekerja dengan database sebagai file .mdf. Biasanya, file database LocalDB disimpan di folder App_Data proyek web.

SQL Server Express tidak disarankan untuk digunakan dalam aplikasi web produksi. LocalDB khususnya tidak boleh digunakan untuk produksi dengan aplikasi web karena tidak dirancang untuk bekerja dengan IIS. Namun, database LocalDB dapat dengan mudah dimigrasikan ke SQL Server atau SQL Azure.

Di Visual Studio 2017, LocalDB diinstal secara default dengan Visual Studio.

Secara default, Kerangka Kerja Entitas mencari string koneksi bernama sama dengan kelas konteks objek (MovieDBContext untuk proyek ini). Untuk informasi selengkapnya, lihat SQL Server String Koneksi untuk Aplikasi Web ASP.NET.

Buka file Web.config akar aplikasi yang ditunjukkan di bawah ini. (Bukan file Web.config di folder Tampilan .)

Cuplikan layar yang memperlihatkan jendela Penjelajah Solusi dan konfigurasi titik Web dipilih dan dilingkari dengan warna merah.

<connectionStrings> Temukan elemen :

Cuplikan layar yang memperlihatkan kode dan elemen string koneksi dilingkari dengan warna merah.

Tambahkan string koneksi berikut ke <connectionStrings> elemen dalam file Web.config .

<add name="MovieDBContext" 
   connectionString="Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\Movies.mdf" 
   providerName="System.Data.SqlClient" 
/>

Contoh berikut menunjukkan sebagian file Web.config dengan string koneksi baru ditambahkan:

<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>

Dua string koneksi sangat mirip. String koneksi pertama diberi nama DefaultConnection dan digunakan untuk database keanggotaan untuk mengontrol siapa yang dapat mengakses aplikasi. String koneksi yang telah Anda tambahkan menentukan database LocalDB bernama Movie.mdf yang terletak di folder App_Data . Kami tidak akan menggunakan database keanggotaan dalam tutorial ini, untuk informasi selengkapnya tentang keanggotaan, autentikasi, dan keamanan, lihat tutorial saya Membuat aplikasi MVC ASP.NET dengan autentikasi dan SQL DB dan menyebarkan ke Azure App Service.

Nama string koneksi harus cocok dengan nama kelas DbContext .

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; }
    }
}

Anda sebenarnya tidak perlu menambahkan MovieDBContext string koneksi. Jika Anda tidak menentukan string koneksi, Kerangka Kerja Entitas akan membuat database LocalDB di direktori pengguna dengan nama kelas DbContext yang sepenuhnya memenuhi syarat (dalam hal MvcMovie.Models.MovieDBContextini ). Anda dapat memberi nama database apa pun yang Anda suka, selama memiliki . Akhiran MDF . Misalnya, kita dapat memberi nama database MyFilms.mdf.

Selanjutnya, Anda akan membuat kelas baru MoviesController yang dapat Anda gunakan untuk menampilkan data film dan memungkinkan pengguna untuk membuat daftar film baru.