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.
Entity Framework adalah serangkaian teknologi dalam ADO.NET yang mendukung pengembangan aplikasi perangkat lunak berorientasi data. Arsitek dan pengembang aplikasi berorientasi data telah berjuang dengan kebutuhan untuk mencapai dua tujuan yang sangat berbeda. Mereka harus memodelkan entitas, hubungan, dan logika masalah bisnis yang mereka pecahkan, dan mereka juga harus bekerja dengan mesin data yang digunakan untuk menyimpan dan mengambil data. Data dapat mencakup beberapa sistem penyimpanan, masing-masing dengan protokolnya sendiri; bahkan aplikasi yang bekerja dengan sistem penyimpanan tunggal harus menyeimbangkan persyaratan sistem penyimpanan terhadap persyaratan penulisan kode aplikasi yang efisien dan dapat dipertahankan.
Entity Framework memungkinkan pengembang untuk bekerja dengan data dalam bentuk objek dan properti khusus domain, seperti pelanggan dan alamat pelanggan, tanpa harus mengkhawatirkan tabel dan kolom pada basis data tempat data ini disimpan. Dengan Kerangka Kerja Entitas, pengembang dapat bekerja pada tingkat abstraksi yang lebih tinggi ketika mereka berurusan dengan data, dan dapat membuat dan memelihara aplikasi berorientasi data dengan kode yang lebih sedikit daripada dalam aplikasi tradisional. Karena Kerangka Kerja Entitas adalah komponen dari .NET Framework, aplikasi Kerangka Kerja Entitas dapat berjalan di komputer mana pun tempat .NET Framework dimulai dengan versi 3.5 SP1 diinstal.
Beri kehidupan pada model
Pendekatan desain yang sudah lama dan umum saat membangun aplikasi atau layanan adalah pembagian aplikasi atau layanan menjadi tiga bagian: model domain, model logis, dan model fisik. Model domain mendefinisikan entitas dan hubungan dalam sistem yang sedang dimodelkan. Model logis untuk database relasional menormalkan entitas dan hubungan ke dalam tabel dengan batasan kunci asing. Model fisik membahas kemampuan mesin data tertentu dengan menentukan detail penyimpanan seperti partisi dan pengindeksan.
Model fisik disempurnakan oleh administrator database untuk meningkatkan performa, tetapi programmer yang menulis kode aplikasi terutama membatasi diri untuk bekerja dengan model logis dengan menulis kueri SQL dan memanggil prosedur tersimpan. Model domain umumnya digunakan sebagai alat untuk menangkap dan mengkomunikasikan persyaratan aplikasi, sering kali sebagai diagram inert yang dilihat dan dibahas pada tahap awal proyek dan kemudian ditinggalkan. Banyak tim pengembangan melewati pembuatan model konseptual dan memulai dengan menentukan tabel, kolom, dan kunci dalam database relasional.
Kerangka Kerja Entitas memberi kehidupan pada model dengan memungkinkan pengembang untuk mengkueri entitas dan hubungan dalam model domain (disebut model konseptual dalam Kerangka Kerja Entitas) sambil mengandalkan Kerangka Kerja Entitas untuk menerjemahkan operasi tersebut ke perintah khusus sumber data. Ini membebaskan aplikasi dari dependensi yang dikodekan secara permanen pada sumber data tertentu.
Saat bekerja dengan Code First, model konseptual dipetakan ke model penyimpanan dalam kode. Kerangka Kerja Entitas dapat menyimpulkan model konseptual berdasarkan jenis objek dan konfigurasi tambahan yang Anda tentukan. Metadata pemetaan dihasilkan selama runtime berdasarkan kombinasi cara Anda menentukan jenis domain dan informasi konfigurasi tambahan yang Anda berikan dalam kode. Entity Framework menghasilkan database sesuai kebutuhan berdasarkan metadata. Untuk informasi selengkapnya, lihat Membuat Model.
Saat bekerja dengan Alat Model Data Entitas, model konseptual, model penyimpanan, dan pemetaan antara keduanya dinyatakan dalam skema berbasis XML dan ditentukan dalam file yang memiliki ekstensi nama yang sesuai:
Bahasa definisi skema konseptual (CSDL) mendefinisikan model konseptual. CSDL adalah implementasi Entity Framework dari Model Data Entitas. Ekstensi file adalah .csdl.
Bahasa Definisi Skema Penyimpanan (SSDL) mendefinisikan model penyimpanan, yang juga disebut model logis. Ekstensi file adalah .ssdl.
Bahasa spesifikasi pemetaan (MSL) mendefinisikan pemetaan antara model penyimpanan dan konseptual. Ekstensi file adalah .msl.
Model penyimpanan dan pemetaan dapat berubah sesuai kebutuhan tanpa memerlukan perubahan pada model konseptual, kelas data, atau kode aplikasi. Karena model penyimpanan khusus penyedia, Anda dapat bekerja dengan model konseptual yang konsisten di berbagai sumber data.
Kerangka Kerja Entitas menggunakan model ini dan memetakan file untuk membuat, membaca, memperbarui, dan menghapus operasi terhadap entitas dan hubungan dalam model konseptual dengan operasi yang setara di sumber data. Entity Framework bahkan mendukung entitas pemetaan dalam model konseptual ke prosedur tersimpan di sumber data. Untuk informasi selengkapnya, lihat Spesifikasi CSDL, SSDL, dan MSL.
Memetakan objek ke data
Pemrograman berorientasi objek menimbulkan tantangan untuk berinteraksi dengan sistem penyimpanan data. Meskipun organisasi kelas sering mencerminkan organisasi tabel database relasional, kecocokan tidak sempurna. Beberapa tabel yang dinormalisasi sering kali sesuai dengan satu kelas, dan hubungan antar kelas terkadang diwakili dengan cara berbeda dibandingkan hubungan antar tabel. Misalnya, untuk mewakili pelanggan untuk pesanan penjualan, Order kelas mungkin menggunakan properti yang berisi referensi ke instans Customer kelas, sementara Order baris tabel dalam database berisi kolom kunci asing (atau sekumpulan kolom) dengan nilai yang sesuai dengan nilai kunci utama dalam Customer tabel. Kelas Customer mungkin memiliki properti bernama Orders yang berisi kumpulan instans Order kelas, sementara Customer tabel dalam database tidak memiliki kolom yang sebanding. Kerangka Kerja Entitas memberi pengembang fleksibilitas untuk mewakili hubungan dengan cara ini, atau untuk lebih dekat memodelkan hubungan saat diwakili dalam database.
Solusi yang ada telah mencoba mengatasi kesenjangan ini, yang sering disebut "ketidakcocokan impedansi", dengan hanya memetakan kelas dan properti berorientasi objek ke tabel dan kolom dalam basis data relasional. Alih-alih mengambil pendekatan tradisional ini, Kerangka Kerja Entitas memetakan tabel relasional, kolom, dan batasan kunci asing dalam model logis ke entitas dan hubungan dalam model konseptual. Ini memungkinkan fleksibilitas yang lebih besar baik dalam menentukan objek dan mengoptimalkan model logis. Alat Model Data Entitas menghasilkan kelas data yang dapat diperluas berdasarkan model konseptual. Kelas-kelas ini adalah kelas parsial yang dapat diperluas dengan anggota tambahan yang ditambahkan pengembang. Secara default, kelas yang dihasilkan untuk model konseptual tertentu berasal dari kelas dasar yang menyediakan layanan untuk mewujudkan entitas sebagai objek dan untuk melacak dan menyimpan perubahan. Pengembang dapat menggunakan kelas ini untuk bekerja dengan entitas dan hubungan sebagai objek yang terkait dengan asosiasi. Pengembang juga dapat menyesuaikan kelas yang dihasilkan untuk model konseptual. Untuk informasi selengkapnya, lihat Bekerja dengan Objek.
Mengakses dan mengubah data entitas
Lebih dari sekadar solusi pemetaan hubungan objek lainnya, Kerangka Kerja Entitas pada dasarnya tentang memungkinkan aplikasi mengakses dan mengubah data yang diwakili sebagai entitas dan hubungan dalam model konseptual. Kerangka Kerja Entitas menggunakan informasi dalam model dan file pemetaan untuk menerjemahkan kueri objek terhadap jenis entitas yang diwakili dalam model konseptual ke dalam kueri khusus sumber data. Hasil kueri diwujudkan menjadi objek yang dikelola Kerangka Kerja Entitas. Kerangka Kerja Entitas menyediakan cara berikut untuk mengkueri model konseptual dan mengembalikan objek:
LINQ ke Entitas. Menyediakan dukungan Language-Integrated Query (LINQ) untuk mengkueri jenis entitas yang ditentukan dalam model konseptual. Untuk informasi selengkapnya, lihat LINQ ke Entitas.
SQL Entitas. Format SQL yang independen dari penyimpanan dan bekerja langsung dengan entitas dalam model konseptual serta mendukung konsep Model Data Entitas. Entity SQL digunakan dengan kueri objek dan kueri yang dijalankan dengan menggunakan penyedia EntityClient. Untuk informasi selengkapnya, lihat Gambaran Umum SQL Entitas.
Kerangka Kerja Entitas mencakup penyedia data EntityClient. Penyedia ini mengelola koneksi, menerjemahkan kueri entitas ke dalam kueri khusus sumber data, dan mengembalikan pembaca data yang digunakan Kerangka Kerja Entitas untuk mewujudkan data entitas menjadi objek. Ketika materialisasi objek tidak diperlukan, penyedia EntityClient juga dapat digunakan seperti penyedia data ADO.NET standar dengan memungkinkan aplikasi untuk menjalankan kueri Entity SQL dan menggunakan pembaca data baca-saja yang dikembalikan. Untuk informasi selengkapnya, lihat Penyedia EntityClient untuk Entity Framework.
Diagram berikut mengilustrasikan arsitektur Kerangka Kerja Entitas untuk mengakses data:
Alat Model Data Entitas dapat menghasilkan kelas yang berasal dari System.Data.Objects.ObjectContext atau System.Data.Entity.DbContext yang mewakili kontainer entitas dalam model konseptual. Konteks objek ini menyediakan fasilitas untuk melacak perubahan dan mengelola identitas, konkurensi, dan hubungan. Kelas ini juga mengekspos metode SaveChanges yang menulis penyisipan, pembaruan, dan penghapusan ke sumber data. Seperti kueri, perubahan ini dibuat oleh perintah yang secara otomatis dihasilkan oleh sistem atau oleh prosedur tersimpan yang ditentukan oleh pengembang.
Penyedia data
Penyedia EntityClient memperluas model penyedia ADO.NET dengan mengakses data dalam hal entitas konseptual dan hubungan. Ini menjalankan kueri yang menggunakan Entity SQL. Entity SQL menyediakan bahasa kueri yang mendasar EntityClient yang memungkinkan untuk berkomunikasi dengan database. Untuk informasi selengkapnya, lihat Penyedia EntityClient untuk Entity Framework.
Kerangka Kerja Entitas menyertakan Penyedia Data SqlClient yang diperbarui yang mendukung pohon perintah kanonis. Untuk informasi selengkapnya, lihat SqlClient untuk Kerangka Kerja Entitas.
Alat untuk model data entitas
Bersama dengan runtime Entity Framework, Visual Studio menyertakan alat pemetaan dan pemodelan. Untuk informasi selengkapnya, lihat Pemodelan dan Pemetaan.
Pelajari lebih lanjut
Untuk mempelajari selengkapnya tentang Kerangka Kerja Entitas, lihat:
Memulai - Menyediakan informasi tentang cara memulai dan menjalankan dengan cepat menggunakan Mulai Cepat, yang menunjukkan cara membuat aplikasi Kerangka Kerja Entitas sederhana.
Terminologi Kerangka Kerja Entitas - Menentukan banyak istilah yang diperkenalkan oleh Model Data Entitas dan Kerangka Kerja Entitas dan yang digunakan dalam dokumentasi Kerangka Kerja Entitas.
Sumber Daya Kerangka Kerja Entitas - Menyediakan tautan ke topik konseptual dan tautan ke topik dan sumber daya eksternal untuk membangun aplikasi Entity Framework.