Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
oleh Tom Dykstra
Aplikasi web sampel Contoso University menunjukkan cara membuat aplikasi ASP.NET Web Forms menggunakan Entity Framework 4.0 dan Visual Studio 2010. Aplikasi sampel adalah situs web untuk Contoso University fiktif. Ini termasuk fungsionalitas seperti penerimaan siswa, pembuatan kursus, dan tugas instruktur.
Tutorial menunjukkan contoh dalam C#. Sampel yang dapat diunduh berisi kode di C# dan Visual Basic.
Database Pertama
Ada tiga cara untuk bekerja dengan data dalam Kerangka Kerja Entitas: Database Pertama, Model Pertama, dan Kode Pertama. Tutorial ini untuk Database First. Untuk informasi tentang perbedaan antara alur kerja ini dan panduan tentang cara memilih yang terbaik untuk skenario Anda, lihat Alur Kerja Pengembangan Kerangka Kerja Entitas.
Formulir Web
Seri tutorial ini menggunakan model ASP.NET Web Forms dan mengasumsikan Anda tahu cara bekerja dengan ASP.NET Web Forms di Visual Studio. Jika tidak, lihat Mulai menggunakan Formulir Web ASP.NET 4.5. Jika Anda lebih suka bekerja dengan kerangka kerja MVC ASP.NET, lihat Memulai Kerangka Kerja Entitas menggunakan ASP.NET MVC.
Versi perangkat lunak
Ditampilkan dalam tutorial Juga bekerja dengan Windows 7 Windows 8 Visual Studio 2010 Visual Studio 2010 Express untuk Web. Tutorial belum diuji dengan versi Visual Studio yang lebih baru. Ada banyak perbedaan dalam pilihan menu, kotak dialog, dan templat. .NET 4 .NET 4.5 kompatibel mundur dengan .NET 4, tetapi tutorial belum diuji dengan .NET 4.5. Kerangka Kerja Entitas 4 Tutorial belum diuji dengan versi Entity Framework yang lebih baru. Dimulai dengan Entity Framework 5, EF menggunakan secara default DbContext API
yang diperkenalkan dengan EF 4.1. Kontrol EntityDataSource dirancang untuk menggunakanObjectContext
API. Untuk informasi tentang cara menggunakan kontrol EntityDataSource denganDbContext
API, lihat posting blog ini.Pertanyaan
Jika Anda memiliki pertanyaan yang tidak terkait langsung dengan tutorial, Anda dapat mempostingnya ke forum kerangka kerja entitas ASP.NET, Kerangka Kerja Entitas dan LINQ ke forum Entitas, atau StackOverflow.com.
Gambaran Umum
Aplikasi yang akan Anda bangun dalam tutorial ini adalah situs web universitas sederhana.
Pengguna dapat melihat dan memperbarui informasi siswa, kursus, dan instruktur. Beberapa layar yang akan Anda buat ditunjukkan di bawah ini.
Membuat Aplikasi Web
Untuk memulai tutorial, buka Visual Studio lalu buat ASP.NET Web Application Project baru menggunakan templat aplikasi web ASP.NET :
Templat ini membuat proyek aplikasi web yang sudah menyertakan lembar gaya dan halaman master:
Buka file Site.Master dan ubah "Aplikasi ASP.NET Saya" menjadi "Universitas Contoso".
<h1>
Contoso University
</h1>
Temukan kontrol Menu bernama NavigationMenu
dan ganti dengan markup berikut, yang menambahkan item menu untuk halaman yang akan Anda buat.
<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false"
IncludeStyleBlock="false" Orientation="Horizontal">
<Items>
<asp:MenuItem NavigateUrl="~/Default.aspx" Text="Home" />
<asp:MenuItem NavigateUrl="~/About.aspx" Text="About" />
<asp:MenuItem NavigateUrl="~/Students.aspx" Text="Students">
<asp:MenuItem NavigateUrl="~/StudentsAdd.aspx" Text="Add Students" />
</asp:MenuItem>
<asp:MenuItem NavigateUrl="~/Courses.aspx" Text="Courses">
<asp:MenuItem NavigateUrl="~/CoursesAdd.aspx" Text="Add Courses" />
</asp:MenuItem>
<asp:MenuItem NavigateUrl="~/Instructors.aspx" Text="Instructors">
<asp:MenuItem NavigateUrl="~/InstructorsCourses.aspx" Text="Course Assignments" />
<asp:MenuItem NavigateUrl="~/OfficeAssignments.aspx" Text="Office Assignments" />
</asp:MenuItem>
<asp:MenuItem NavigateUrl="~/Departments.aspx" Text="Departments">
<asp:MenuItem NavigateUrl="~/DepartmentsAdd.aspx" Text="Add Departments" />
</asp:MenuItem>
</Items>
</asp:Menu>
Buka halaman Default.aspx dan ubah kontrol bernama Content
BodyContent
menjadi ini:
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<h2>
Welcome to Contoso University!
</h2>
</asp:Content>
Anda sekarang memiliki halaman beranda sederhana dengan tautan ke berbagai halaman yang akan Anda buat:
Membuat Database
Untuk tutorial ini, Anda akan menggunakan perancang model data Kerangka Kerja Entitas untuk membuat model data secara otomatis berdasarkan database yang ada (sering disebut pendekatan database-first ). Alternatif yang tidak tercakup dalam seri tutorial ini adalah membuat model data secara manual dan kemudian meminta perancang menghasilkan skrip yang membuat database (pendekatan model-first ).
Untuk metode database-first yang digunakan dalam tutorial ini, langkah selanjutnya adalah menambahkan database ke situs. Cara termudah adalah dengan terlebih dahulu mengunduh proyek yang sesuai dengan tutorial ini. Kemudian klik kanan folder App_Data , pilih Tambahkan Item yang Ada, dan pilih file database School.mdf dari proyek yang diunduh.
Alternatifnya adalah mengikuti instruksi di Membuat Database Sampel Sekolah. Baik Anda mengunduh database atau membuatnya, salin file School.mdf dari folder berikut ke folder App_Data aplikasi Anda:
%PROGRAMFILES%\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA
(Lokasi file .mdf ini mengasumsikan Anda menggunakan SQL Server 2008 Express.)
Jika Anda membuat database dari skrip, lakukan langkah-langkah berikut untuk membuat diagram database:
Di Server Explorer, perluas Koneksi Data, perluas School.mdf, klik kanan Diagram Database, dan pilih Tambahkan Diagram Baru.
Pilih semua tabel lalu klik Tambahkan.
SQL Server membuat diagram database yang memperlihatkan tabel, kolom dalam tabel, dan hubungan antar tabel. Anda dapat memindahkan tabel untuk mengaturnya sesuka Anda.
Simpan diagram sebagai "SchoolDiagram" dan tutup.
Jika Anda mengunduh file School.mdf yang sesuai dengan tutorial ini, Anda dapat melihat diagram database dengan mengklik dua kali SchoolDiagram di bawah Diagram Database di Server Explorer.
Diagram terlihat seperti ini (tabel mungkin berada di lokasi yang berbeda dari apa yang diperlihatkan di sini):
Membuat Model Data Kerangka Kerja Entitas
Sekarang Anda dapat membuat model data Entity Framework dari database ini. Anda dapat membuat model data di folder akar aplikasi, tetapi untuk tutorial ini Anda akan menempatkannya di folder bernama DAL (untuk Lapisan Akses Data).
Di Penjelajah Solusi, tambahkan folder proyek bernama DAL (pastikan folder tersebut berada di bawah proyek, bukan di bawah solusi).
Klik kanan folder DAL lalu pilih Tambahkan dan Item Baru. Di bawah Templat terinstal, pilih Data, pilih templat Model Data Entitas ADO.NET , beri nama SchoolModel.edmx, lalu klik Tambahkan.
Ini memulai Wizard Model Data Entitas. Pada langkah wizard pertama, opsi Hasilkan dari database dipilih secara default. Klik Berikutnya.
Di langkah Pilih Koneksi Data Anda , biarkan nilai default dan klik Berikutnya. Database Sekolah dipilih secara default dan pengaturan koneksi disimpan dalam file Web.config sebagai SchoolEntities.
Di langkah wizard Pilih Objek Database Anda , pilih semua tabel kecuali sysdiagrams
(yang dibuat untuk diagram yang Anda buat sebelumnya) lalu klik Selesai.
Setelah selesai membuat model, Visual Studio menunjukkan representasi grafis objek Kerangka Kerja Entitas (entitas) yang sesuai dengan tabel database Anda. (Seperti diagram database, lokasi elemen individual mungkin berbeda dari apa yang Anda lihat dalam ilustrasi ini. Anda dapat menyeret elemen di sekitar untuk mencocokkan ilustrasi jika Anda mau.)
Menjelajahi Model Data Kerangka Kerja Entitas
Anda dapat melihat bahwa diagram entitas terlihat sangat mirip dengan diagram database, dengan beberapa perbedaan. Salah satu perbedaannya adalah penambahan simbol di akhir setiap asosiasi yang menunjukkan jenis asosiasi (hubungan tabel disebut asosiasi entitas dalam model data):
Asosiasi satu-ke-nol-atau-satu diwakili oleh "1" dan "0..1".
Dalam hal ini,
Person
entitas mungkin atau mungkin tidak dikaitkan denganOfficeAssignment
entitas. EntitasOfficeAssignment
harus dikaitkan denganPerson
entitas. Dengan kata lain, instruktur mungkin atau mungkin tidak ditugaskan ke kantor, dan kantor apa pun hanya dapat ditetapkan ke satu instruktur.Asosiasi satu-ke-banyak diwakili oleh "1" dan "*".
Dalam hal ini,
Person
entitas mungkin atau mungkin tidak memiliki entitas terkaitStudentGrade
. EntitasStudentGrade
harus dikaitkan dengan satuPerson
entitas.StudentGrade
entitas sebenarnya mewakili kursus terdaftar dalam database ini; jika siswa terdaftar dalam kursus dan belum ada nilai,Grade
properti null. Dengan kata lain, seorang siswa mungkin belum terdaftar dalam kursus apa pun, dapat didaftarkan dalam satu kursus, atau dapat didaftarkan dalam beberapa kursus. Setiap nilai dalam kursus terdaftar hanya berlaku untuk satu siswa.Asosiasi banyak ke banyak diwakili oleh "*" dan "*".
Dalam hal ini,
Person
entitas mungkin atau mungkin tidak memiliki entitas terkaitCourse
, dan kebalikannya juga benar:Course
entitas mungkin atau mungkin tidak memiliki entitas terkaitPerson
. Dengan kata lain, seorang instruktur dapat mengajar beberapa kursus, dan kursus dapat diajarkan oleh beberapa instruktur. (Dalam database ini, hubungan ini hanya berlaku untuk instruktur; tidak menautkan siswa ke kursus. Siswa ditautkan ke kursus berdasarkan tabel StudentGrades.)
Perbedaan lain antara diagram database dan model data adalah bagian Properti Navigasi tambahan untuk setiap entitas. Properti navigasi entitas mereferensikan entitas terkait. Misalnya, Courses
properti dalam Person
entitas berisi kumpulan semua entitas yang terkait dengan Person
entitas tersebutCourse
.
Namun perbedaan lain antara database dan model data adalah tidak adanya CourseInstructor
tabel asosiasi yang digunakan dalam database untuk menautkan Person
tabel dan Course
dalam hubungan banyak ke banyak. Properti navigasi memungkinkan Anda mendapatkan entitas terkait Course
dari Person
entitas dan entitas terkait Person
dari Course
entitas, sehingga tidak perlu mewakili tabel asosiasi dalam model data.
Untuk tujuan tutorial ini, misalkan FirstName
kolom Person
tabel benar-benar berisi nama depan dan nama tengah seseorang. Anda ingin mengubah nama bidang untuk mencerminkan ini, tetapi administrator database (DBA) mungkin tidak ingin mengubah database. Anda dapat mengubah nama FirstName
properti dalam model data, sambil membiarkan databasenya yang setara tidak berubah.
Di perancang, klik kanan FirstName di Person
entitas, lalu pilih Ganti Nama.
Ketik nama baru "FirstMidName". Ini mengubah cara Anda merujuk ke kolom dalam kode tanpa mengubah database.
Browser model menyediakan cara lain untuk melihat struktur database, struktur model data, dan pemetaan di antaranya. Untuk melihatnya, klik kanan area kosong di perancang entitas lalu klik Browser Model.
Panel Browser Model menampilkan tampilan pohon. (Panel Browser Model mungkin ditampung dengan panel Penjelajah Solusi .) Simpul SchoolModel mewakili struktur model data, dan simpul SchoolModel.Store mewakili struktur database.
Perluas SchoolModel.Store untuk melihat tabel, memperluas Tabel/Tampilan untuk melihat tabel, lalu perluas Kursus untuk melihat kolom dalam tabel.
Perluas SchoolModel, perluas Jenis Entitas, lalu perluas simpul Kursus untuk melihat entitas dan properti dalam entitas.
Di panel Perancang atau Browser Model , Anda dapat melihat bagaimana Kerangka Kerja Entitas menghubungkan objek dari dua model tersebut.
Person
Klik kanan entitas dan pilih Pemetaan Tabel.
Ini membuka jendela Detail Pemetaan . Perhatikan bahwa jendela ini memungkinkan Anda melihat bahwa kolom FirstName
database dipetakan ke FirstMidName
, yang merupakan apa yang Anda ganti namanya menjadi dalam model data.
Kerangka Kerja Entitas menggunakan XML untuk menyimpan informasi tentang database, model data, dan pemetaan di antaranya. File SchoolModel.edmx sebenarnya adalah file XML yang berisi informasi ini. Perancang merender informasi dalam format grafis, tetapi Anda juga bisa menampilkan file sebagai XML dengan mengklik kanan file .edmx di Penjelajah Solusi, mengklik Buka Dengan, dan memilih Editor XML (Teks). (Perancang model data dan editor XML hanyalah dua cara berbeda untuk membuka dan bekerja dengan file yang sama, sehingga Anda tidak dapat membuka perancang dan membuka file di editor XML secara bersamaan.)
Anda sekarang telah membuat situs web, database, dan model data. Di panduan berikutnya, Anda akan mulai bekerja dengan data menggunakan model data dan kontrol ASP.NET EntityDataSource
.