Untuk menginstall model, cek jika berhasil menggunakan dotnet ef, jike berhasil akan muncul logo EF
Pada terminal, pada directory proyek, jalankan:
Untuk menambah package yang diperlukan, cek pada file MvcMovie.csproj atau sesuai dengan nama proyek, cek apakah ada dua baris berikut (jangan ditulis manual!):
Membuat DbContext
Kita akan melakukan pendekatan code-first, yaitu membuat kode nya untuk menghasilkan database. Untuk itu diperlukan juga sebuah DbContext.
DbContext pada dasarnya adalah cara kita mengakses database dari kode.
Buatlah folder Data baru, lalu didalamnya buat file MvcMovieDbContext.cs, lalu isi file tersebut dengan kode berikut:
Di kode tersebut, DbSet merupakan representasi dari 'Tabel' di database, jadi DbSet<Movie> merupakan tabel Movie. Dimana Movie adalah model yang sudah kita buat tadi.
Mengatur proyek agar menggunakan DbContext
Pada file Startup.cs, pada bagian paling atas, tambah namespace-namespace yang kita perlukan, yakni:
lalu pada method ConfigureServices, tambah
di bagian akhir. Untuk version, disitu tertulis 10, 6, 4. Ganti sesuai dengan versi mariadb.
Untuk mengetahui versi mariadb dapat menjalankan query berikut:
Setelah itu, kita perlu memberi program kita 'ConnectionString' yang digunakan untuk mengkoneksikan ke database.
Buka file appsettings.Development.json, lalu masukkan
dibagian akhir, sehingga menjadi (perhatikan koma):
ganti '123456' dengan password root mariadb kalian.
Membuat migrasi
Sebelum membuat database, kita perlu membuat sebuah 'migrasi'
Pada terminal jalankan perintah:
Setelah dijalankan akan muncul folder 'Migrations' yang berisi skema migrasi.
Membuat database
Pada saat ini program kita sudah memiliki skema untuk database sekarang kita harus membuat database untuk menampung semua datanya.
Pada bagian 'ConnectionString' kita sudah menyantumkan bahwa nama database nya adalah 'movieapp'
Maka buatlah database bernama 'movieapp' pada mariadb
Setelah database sudah dibuat, jalankan perintah berikut pada terminal:
Refresh database kalian untuk melihat hasilnya, jika berhasil, seharusnya ada tabel baru: Movies
Sebagai uji coba, cobalah masukkan beberapa data ke tabel Movies, berikut contohnya menggunakan query:
Menampilkan data ke view
Pada controller MovieController, buatlah sebuah instance variable baru dengan tipe MvcMovieDbContext (yang tadi dibuat), lalu beri nama variable tersebut _context
Lalu ubah constructornya menjadi seperti berikut:
Sekarang kita sudah memiliki akses ke DbContext -- database kita
Ubahlah method index untuk mengirimkan daftar movie nya:
Lalu pada view Index.cshtml di Movie, bagian paling atas file tambah:
agar dapat mengakses daftar model movie yang tadi kita kirimkan, ubah juga tampilannya, untuk menampilkan daftar movie, secara keseluruhan, file Index.cshtml akan menjadi seperti berikut:
using Microsoft.EntityFrameworkCore;
using MvcMovie.Models;
namespace MvcMovie.Data
{
public class MvcMovieDbContext : DbContext
{
public MvcMovieDbContext (DbContextOptions<MvcMovieDbContext> options) : base(options)
{ }
public DbSet<Movie> Movies { get; set; }
}
}
using MvcMovie.Data;
using Microsoft.EntityFrameworkCore;
using Pomelo.EntityFrameworkCore.MySql;
services.AddDbContext<MvcMovieDbContext>(option =>
{
var connectionString = Configuration.GetConnectionString("MovieApp");
var serverVersion = new MariaDbServerVersion(new Version(10, 6, 4));
option.UseMySql(connectionString, serverVersion);
});