Database Pertama
Video dan panduan langkah demi langkah ini memberikan pengenalan pengembangan Database First menggunakan Entity Framework. Database First memungkinkan Anda merekayasa balik model dari database yang sudah ada. Model disimpan dalam file EDMX (ekstensi.edmx) dan dapat dilihat dan diedit di Perancang Kerangka Kerja Entitas. Kelas yang berinteraksi dengan Anda di aplikasi secara otomatis dihasilkan dari file EDMX.
Tonton video
Video ini menyediakan pengenalan pengembangan Database First menggunakan Entity Framework. Database First memungkinkan Anda merekayasa balik model dari database yang sudah ada. Model disimpan dalam file EDMX (ekstensi.edmx) dan dapat dilihat dan diedit di Perancang Kerangka Kerja Entitas. Kelas yang berinteraksi dengan Anda di aplikasi secara otomatis dihasilkan dari file EDMX.
Disajikan Oleh: Rowan Miller
Prasyarat
Anda harus menginstal setidaknya Visual Studio 2010 atau Visual Studio 2012 untuk menyelesaikan panduan ini.
Jika Anda menggunakan Visual Studio 2010, Anda juga harus menginstal NuGet .
1. Buat Database yang Sudah Ada
Biasanya ketika Anda menargetkan database yang sudah ada, database tersebut sudah akan dibuat, tetapi untuk panduan ini kita perlu membuat database untuk diakses.
Server database yang diinstal dengan Visual Studio berbeda tergantung pada versi Visual Studio yang telah Anda instal:
- Jika Anda menggunakan Visual Studio 2010, Anda akan membuat database SQL Express.
- Jika Anda menggunakan Visual Studio 2012, Maka Anda akan membuat database LocalDB .
Mari kita lanjutkan dan hasilkan database.
Membuka Visual Studio
Tampilan -> Penjelajah Server
Klik kanan pada Data Koneksi ions -> Tambahkan Koneksi ion...
Jika Anda belum tersambung ke database dari Server Explorer sebelum Anda harus memilih Microsoft SQL Server sebagai sumber data
Koneksi ke LocalDB atau SQL Express, tergantung pada mana yang telah Anda instal, dan masukkan DatabaseFirst.Blogging sebagai nama database
Pilih OK dan Anda akan ditanya apakah Anda ingin membuat database baru, pilih Ya
Database baru sekarang akan muncul di Server Explorer, klik kanan padanya dan pilih Kueri Baru
Salin SQL berikut ke dalam kueri baru, lalu klik kanan pada kueri dan pilih Jalankan
CREATE TABLE [dbo].[Blogs] (
[BlogId] INT IDENTITY (1, 1) NOT NULL,
[Name] NVARCHAR (200) NULL,
[Url] NVARCHAR (200) NULL,
CONSTRAINT [PK_dbo.Blogs] PRIMARY KEY CLUSTERED ([BlogId] ASC)
);
CREATE TABLE [dbo].[Posts] (
[PostId] INT IDENTITY (1, 1) NOT NULL,
[Title] NVARCHAR (200) NULL,
[Content] NTEXT NULL,
[BlogId] INT NOT NULL,
CONSTRAINT [PK_dbo.Posts] PRIMARY KEY CLUSTERED ([PostId] ASC),
CONSTRAINT [FK_dbo.Posts_dbo.Blogs_BlogId] FOREIGN KEY ([BlogId]) REFERENCES [dbo].[Blogs] ([BlogId]) ON DELETE CASCADE
);
2. Buat Aplikasi
Untuk menjaga hal-hal sederhana, kita akan membangun aplikasi konsol dasar yang menggunakan Database First untuk melakukan akses data:
- Membuka Visual Studio
- File -> Baru -> Proyek
- Pilih Windows dari menu sebelah kiri dan Aplikasi Konsol
- Masukkan DatabaseFirstSample sebagai nama
- Pilih OK
3. Model Reverse Engineer
Kita akan menggunakan Entity Framework Designer, yang disertakan sebagai bagian dari Visual Studio, untuk membuat model kita.
Project -> Tambahkan Item Baru...
Pilih Data dari menu sebelah kiri lalu ADO.NET Model Data Entitas
Masukkan BloggingModel sebagai nama dan klik OK
Ini meluncurkan Wizard Model Data Entitas
Pilih Buat dari Database dan klik Berikutnya
Pilih koneksi ke database yang Anda buat di bagian pertama, masukkan BloggingContext sebagai nama string koneksi dan klik Berikutnya
Klik kotak centang di samping 'Tabel' untuk mengimpor semua tabel dan klik 'Selesai'
Setelah proses insinyur terbalik menyelesaikan model baru ditambahkan ke proyek Anda dan dibuka untuk Anda lihat di Perancang Kerangka Kerja Entitas. File App.config juga telah ditambahkan ke proyek Anda dengan detail koneksi untuk database.
Langkah Tambahan di Visual Studio 2010
Jika Anda bekerja di Visual Studio 2010, ada beberapa langkah tambahan yang perlu Anda ikuti untuk meningkatkan ke versi terbaru Entity Framework. Peningkatan penting karena memberi Anda akses ke permukaan API yang ditingkatkan, yang jauh lebih mudah digunakan, serta perbaikan bug terbaru.
Pertama, kita perlu mendapatkan versi terbaru Entity Framework dari NuGet.
- Project –> Kelola Paket NuGet...Jika Anda tidak memiliki opsi Kelola Paket NuGet... Anda harus menginstal versi terbaru NuGet
- Pilih tab Online
- Pilih paket EntityFramework
- Klik Instal
Selanjutnya, kita perlu menukar model kita untuk menghasilkan kode yang menggunakan API DbContext, yang diperkenalkan dalam versi Entity Framework yang lebih baru.
Klik kanan pada tempat kosong model Anda di Perancang EF dan pilih Tambahkan Item Pembuatan Kode...
Pilih Templat Online dari menu sebelah kiri dan cari DbContext
Pilih Generator EF 5.x DbContext untuk C#, masukkan BloggingModel sebagai nama dan klik Tambahkan
4. Membaca & Menulis Data
Sekarang setelah kita memiliki model, saatnya untuk menggunakannya untuk mengakses beberapa data. Kelas yang akan kami gunakan untuk mengakses data dibuat secara otomatis untuk Anda berdasarkan file EDMX.
Cuplikan layar ini berasal dari Visual Studio 2012, jika Anda menggunakan Visual Studio 2010 file BloggingModel.tt dan BloggingModel.Context.tt akan langsung berada di bawah proyek Anda daripada disarangkan di bawah file EDMX.
Terapkan metode Utama di Program.cs seperti yang ditunjukkan di bawah ini. Kode ini membuat instans baru dari konteks kami dan kemudian menggunakannya untuk menyisipkan Blog baru. Kemudian menggunakan kueri LINQ untuk mengambil semua Blog dari database yang diurutkan menurut abjad menurut Judul.
class Program
{
static void Main(string[] args)
{
using (var db = new BloggingContext())
{
// Create and save a new Blog
Console.Write("Enter a name for a new Blog: ");
var name = Console.ReadLine();
var blog = new Blog { Name = name };
db.Blogs.Add(blog);
db.SaveChanges();
// Display all Blogs from the database
var query = from b in db.Blogs
orderby b.Name
select b;
Console.WriteLine("All blogs in the database:");
foreach (var item in query)
{
Console.WriteLine(item.Name);
}
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}
}
Anda sekarang dapat menjalankan aplikasi dan mengujinya.
Enter a name for a new Blog: ADO.NET Blog
All blogs in the database:
ADO.NET Blog
Press any key to exit...
5. Berurusan dengan Perubahan Database
Sekarang saatnya untuk membuat beberapa perubahan pada skema database kita, ketika kita membuat perubahan ini kita juga perlu memperbarui model kita untuk mencerminkan perubahan tersebut.
Langkah pertama adalah membuat beberapa perubahan pada skema database. Kita akan menambahkan tabel Pengguna ke skema.
- Klik kanan pada database DatabaseFirst.Blogging di Server Explorer dan pilih Kueri Baru
- Salin SQL berikut ke dalam kueri baru, lalu klik kanan pada kueri dan pilih Jalankan
CREATE TABLE [dbo].[Users]
(
[Username] NVARCHAR(50) NOT NULL PRIMARY KEY,
[DisplayName] NVARCHAR(MAX) NULL
)
Sekarang setelah skema diperbarui, saatnya untuk memperbarui model dengan perubahan tersebut.
Klik kanan pada tempat kosong model Anda di Desainer EF dan pilih 'Perbarui Model dari Database...', ini akan meluncurkan Wizard Pembaruan
Pada tab Tambahkan wizard Pembaruan centang kotak di samping Tabel, ini menunjukkan bahwa kita ingin menambahkan tabel baru dari skema. Tab Refresh memperlihatkan tabel yang sudah ada dalam model yang akan diperiksa perubahannya selama pembaruan. Tab Hapus memperlihatkan tabel apa pun yang telah dihapus dari skema dan juga akan dihapus dari model sebagai bagian dari pembaruan. Informasi pada kedua tab ini secara otomatis terdeteksi dan disediakan hanya untuk tujuan informasi, Anda tidak dapat mengubah pengaturan apa pun.
Klik Selesai pada Panduan Pembaruan
Model sekarang diperbarui untuk menyertakan entitas Pengguna baru yang memetakan ke tabel Pengguna yang kami tambahkan ke database.
Ringkasan
Dalam panduan ini kami melihat pengembangan Database First, yang memungkinkan kami membuat model di EF Designer berdasarkan database yang ada. Kami kemudian menggunakan model tersebut untuk membaca dan menulis beberapa data dari database. Terakhir, kami memperbarui model untuk mencerminkan perubahan yang kami buat pada skema database.