Bagikan melalui


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

Video: WMV | MP4 | WMV (ZIP)

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

    Select Data Source

  • Koneksi ke LocalDB atau SQL Express, tergantung pada mana yang telah Anda instal, dan masukkan DatabaseFirst.Blogging sebagai nama database

    Sql Express Connection DF

    LocalDB Connection DF

  • Pilih OK dan Anda akan ditanya apakah Anda ingin membuat database baru, pilih Ya

    Create Database Dialog

  • 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

    Wizard Step 1

  • Pilih koneksi ke database yang Anda buat di bagian pertama, masukkan BloggingContext sebagai nama string koneksi dan klik Berikutnya

    Wizard Step 2

  • Klik kotak centang di samping 'Tabel' untuk mengimpor semua tabel dan klik 'Selesai'

    Wizard Step 3

 

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.

Model Initial

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

    DbContext Template

 

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.

Generated Classes DF

 

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.

    Refresh Wizard

  • Klik Selesai pada Panduan Pembaruan

 

Model sekarang diperbarui untuk menyertakan entitas Pengguna baru yang memetakan ke tabel Pengguna yang kami tambahkan ke database.

Model Updated

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.