Pemisahan Entitas Perancang
Panduan ini menunjukkan cara memetakan jenis entitas ke dua tabel dengan memodifikasi model dengan Perancang Kerangka Kerja Entitas (Desainer EF). Anda dapat memetakan entitas ke beberapa tabel saat tabel berbagi kunci umum. Konsep yang berlaku untuk memetakan jenis entitas ke dua tabel mudah diperluas untuk memetakan jenis entitas ke lebih dari dua tabel.
Gambar berikut menunjukkan jendela utama yang digunakan saat bekerja dengan EF Designer.
Prasyarat
Visual Studio 2012 atau Visual Studio 2010, edisi Ultimate, Premium, Professional, atau Web Express.
Membuat Database
Server database yang diinstal dengan Visual Studio berbeda tergantung pada versi Visual Studio yang telah Anda instal:
- Jika Anda menggunakan Visual Studio 2012, Maka Anda akan membuat database LocalDB.
- Jika Anda menggunakan Visual Studio 2010, Anda akan membuat database SQL Express.
Pertama, kita akan membuat database dengan dua tabel yang akan kita gabungkan menjadi satu entitas.
- 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 yang telah Anda instal
- Masukkan EntitySplitting 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
- Jika Anda menggunakan Visual Studio 2012
- Klik kanan pada database di Server Explorer dan pilih Kueri Baru
- Salin SQL berikut ke dalam kueri baru, lalu klik kanan pada kueri dan pilih Jalankan
- Jika Anda menggunakan Visual Studio 2010
- Pilih Data -> Editor SQL Bertransaksi -> Koneksi kueri Baru...
- Masukkan .\SQLEXPRESS sebagai nama server dan klik OK
- Pilih database EntitySplitting dari menu drop-down di bagian atas editor kueri
- Salin SQL berikut ke dalam kueri baru, lalu klik kanan pada kueri dan pilih Jalankan SQL
CREATE TABLE [dbo].[Person] (
[PersonId] INT IDENTITY (1, 1) NOT NULL,
[FirstName] NVARCHAR (200) NULL,
[LastName] NVARCHAR (200) NULL,
CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED ([PersonId] ASC)
);
CREATE TABLE [dbo].[PersonInfo] (
[PersonId] INT NOT NULL,
[Email] NVARCHAR (200) NULL,
[Phone] NVARCHAR (50) NULL,
CONSTRAINT [PK_PersonInfo] PRIMARY KEY CLUSTERED ([PersonId] ASC),
CONSTRAINT [FK_Person_PersonInfo] FOREIGN KEY ([PersonId]) REFERENCES [dbo].[Person] ([PersonId]) ON DELETE CASCADE
);
Membuat Proyek
- Pada menu File, arahkan ke Baru, lalu klik Proyek.
- Di panel kiri, klik Visual C#, lalu pilih templat Aplikasi Konsol.
- Masukkan MapEntityToTablesSample sebagai nama proyek dan klik OK.
- Klik Tidak jika diminta untuk menyimpan kueri SQL yang dibuat di bagian pertama.
Membuat Model berdasarkan Database
- Klik kanan nama proyek di Penjelajah Solusi, arahkan ke Tambahkan, lalu klik Item Baru.
- Pilih Data dari menu sebelah kiri lalu pilih ADO.NET Model Data Entitas di panel Templat.
- Masukkan MapEntityToTablesModel.edmx untuk nama file, lalu klik Tambahkan.
- Dalam kotak dialog Pilih Konten Model, pilih Hasilkan dari database, lalu klik Berikutnya.
- Pilih koneksi EntitySplitting dari menu drop-down dan klik Berikutnya.
- Dalam kotak dialog Pilih Objek Database Anda, centang kotak di samping simpul Tabel . Ini akan menambahkan semua tabel dari database EntitySplitting ke model.
- Klik Selesai.
Perancang Entitas, yang menyediakan permukaan desain untuk mengedit model Anda, ditampilkan.
Memetakan Entitas ke Dua Tabel
Dalam langkah ini kita akan memperbarui jenis entitas Orang untuk menggabungkan data dari tabel Orang dan PersonInfo .
Pilih properti Email dan Telepon dari **PersonInfo **entitas dan tekan tombol Ctrl+X.
Pilih **Orang **entitas dan tekan tombol Ctrl+V .
Pada permukaan desain, pilih entitas PersonInfo dan tekan tombol Hapus pada keyboard.
Klik Tidak saat ditanya apakah Anda ingin menghapus tabel PersonInfo dari model, kami akan memetakannya ke entitas Orang .
Langkah berikutnya memerlukan jendela Detail Pemetaan. Jika Anda tidak dapat melihat jendela ini, klik kanan permukaan desain dan pilih Detail Pemetaan.
- Pilih jenis entitas Orang dan klik< Tambahkan Tabel atau Tampilan> di jendela Detail Pemetaan.
- Pilih **PersonInfo ** dari daftar drop-down. Jendela Detail Pemetaan diperbarui dengan pemetaan kolom default, ini baik-baik saja untuk skenario kami.
Jenis entitas Orang sekarang dipetakan ke tabel Orang dan PersonInfo.
Menggunakan Model
- Tempelkan kode berikut dalam metode Utama.
using (var context = new EntitySplittingEntities())
{
var person = new Person
{
FirstName = "John",
LastName = "Doe",
Email = "john@example.com",
Phone = "555-555-5555"
};
context.People.Add(person);
context.SaveChanges();
foreach (var item in context.People)
{
Console.WriteLine(item.FirstName);
}
}
- Kompilasi dan jalankan aplikasi.
Pernyataan T-SQL berikut dijalankan terhadap database sebagai hasil dari menjalankan aplikasi ini.
Dua pernyataan INSERT berikut dijalankan sebagai hasil dari menjalankan konteks. SaveChanges(). Mereka mengambil data dari entitas Orang dan membaginya antara tabel Orang dan PersonInfo .
SELECT berikut dijalankan sebagai hasil dari menghitung orang-orang dalam database. Ini menggabungkan data dari tabel Person dan PersonInfo .