Pertimbangan Migrasi (Entity Framework)
Entity Framework ADO.NET memberikan beberapa manfaat untuk aplikasi yang ada. Salah satu manfaat yang paling penting adalah kemampuan untuk menggunakan model konseptual untuk memisahkan struktur data yang digunakan oleh aplikasi dari skema di sumber data. Ini memungkinkan Anda untuk dengan mudah membuat perubahan pada model penyimpanan atau ke sumber data itu sendiri tanpa membuat perubahan kompensasi pada aplikasi. Untuk informasi selengkapnya tentang manfaat menggunakan Kerangka Kerja Entitas, lihat Ringkasan Entity Framework dan Model Data Entitas.
Untuk memanfaatkan manfaat Entity Framework, Anda dapat memigrasikan aplikasi yang ada ke Entity Framework. Beberapa tugas umum untuk semua aplikasi yang dimigrasikan. Tugas umum ini termasuk memutakhirkan aplikasi untuk menggunakan .NET Framework yang dimulai dengan versi 3.5 Paket Layanan 1 (SP1), menentukan model dan pemetaan, dan mengonfigurasi Entity Framework. Saat Anda memigrasikan aplikasi ke Entity Framework, ada pertimbangan tambahan yang berlaku. Pertimbangan ini bergantung pada jenis aplikasi yang dimigrasikan dan fungsionalitas spesifik aplikasi. Topik ini memberikan informasi untuk membantu Anda memilih pendekatan terbaik untuk digunakan saat Anda meningkatkan versi aplikasi yang sudah ada.
Pertimbangan Migrasi Umum
Pertimbangan berikut berlaku saat Anda memigrasikan aplikasi apa pun ke Entity Framework:
Aplikasi apa pun yang menggunakan .NET Framework yang dimulai dengan versi 3.5 SP1 dapat dimigrasikan ke Entity Framework, selama penyedia data untuk sumber data yang digunakan oleh aplikasi tersebut mendukung Entity Framework.
Entity Framework mungkin tidak mendukung semua fungsionalitas penyedia sumber data, bahkan jika penyedia tersebut mendukung Entity Framework.
Untuk aplikasi besar atau kompleks, Anda tidak perlu memigrasikan seluruh aplikasi ke Entity Framework sekaligus. Namun, setiap bagian dari aplikasi yang tidak menggunakan Entity Framework tetap harus diubah saat sumber data berubah.
Koneksi penyedia data yang digunakan oleh Entity Framework dapat dibagikan dengan bagian lain dari aplikasi Anda karena Entity Framework menggunakan penyedia data ADO.NET untuk mengakses sumber data. Misalnya, penyedia SqlClient digunakan oleh Entity Framework untuk mengakses database SQL Server. Untuk informasi selengkapnya, lihat Penyedia EntityClient untuk Entity Framework.
Tugas Migrasi Umum
Jalur untuk memigrasikan aplikasi yang ada ke Entity Framework bergantung pada jenis aplikasi dan strategi akses data yang ada. Namun, Anda harus selalu melakukan tugas berikut saat Anda memigrasikan aplikasi yang sudah ada ke Entity Framework.
Catatan
Semua tugas ini dilakukan secara otomatis saat Anda menggunakan alat Model Data Entitas yang dimulai dengan Visual Studio 2008. Untuk informasi selengkapnya, lihat Cara: Menggunakan Wizard Model Data Entitas.
Tingkatkan aplikasi.
Proyek yang dibuat dengan menggunakan versi Visual Studio yang lebih lama dan .NET Framework harus ditingkatkan untuk menggunakan Visual Studio 2008 SP1 dan .NET Framework yang dimulai dengan versi 3.5 SP1.
Tentukan model dan pemetaannya.
Model dan file pemetaan mendefinisikan entitas dalam model konseptual; struktur dalam sumber data, seperti tabel, prosedur tersimpan, dan tampilan; dan pemetaan antara entitas dan struktur sumber data. Untuk informasi selengkapnya, lihat Cara: Mendefinisikan Model dan Memetakan File Secara Manual.
Jenis yang ditentukan dalam model penyimpanan harus cocok dengan nama objek di sumber data. Jika aplikasi yang ada mengekspos data sebagai objek, Anda harus memastikan bahwa entitas dan properti yang ditentukan dalam model konseptual cocok dengan nama kelas dan properti data yang ada ini. Untuk informasi selengkapnya, lihat Cara: Menyesuaikan Pemodelan dan Memetakan File untuk Bekerja dengan Objek Kustom.
Catatan
Perancang Model Data Entitas dapat digunakan untuk mengganti nama entitas dalam model konseptual agar sesuai dengan objek yang ada. Untuk informasi selengkapnya, lihat Perancang Model Data Entitas.
Tentukan string koneksi.
Entity Framework menggunakan string koneksi yang diformat khusus saat menjalankan kueri terhadap model konseptual. String koneksi ini merangkum informasi tentang model dan file pemetaan dan koneksi ke sumber data.
Konfigurasikan proyek Visual Studio.
Referensi ke rakitan Entity Framework dan model serta file pemetaan harus ditambahkan ke proyek Visual Studio. Anda dapat menambahkan file pemetaan ini ke proyek untuk memastikan bahwa mereka disebarkan dengan aplikasi di lokasi yang ditunjukkan dalam string koneksi. Untuk informasi selengkapnya, lihat Cara: Mengonfigurasi Proyek Entity Framework Secara Manual.
Pertimbangan untuk Aplikasi dengan Objek yang Ada
Dimulai dengan .NET Framework 4, Kerangka Kerja Entitas mendukung objek CLR "plain old" (POCO), juga disebut objek yang tidak tahu persistensi. Dalam kebanyakan kasus, objek Anda yang ada dapat bekerja dengan Kerangka Kerja Entitas dengan membuat perubahan kecil. Untuk informasi selengkapnya, lihat Bekerja dengan Entitas POCO. Anda juga dapat memigrasikan aplikasi ke Entity Framework dan menggunakan kelas data yang dihasilkan oleh alat Entity Framework. Untuk informasi selengkapnya, lihat Cara: Menggunakan Wizard Model Data Entitas.
Pertimbangan untuk Aplikasi yang Menggunakan Penyedia ADO.NET
Penyedia ADO.NET, seperti SqlClient, memungkinkan Anda untuk meminta sumber data untuk mengembalikan data tabular. Data juga dapat dimuat ke dalam ADO.NET Himpunan Data. Daftar berikut menjelaskan pertimbangan untuk memutakhirkan aplikasi yang menggunakan penyedia ADO.NET yang sudah ada:
Menampilkan data tabular dengan menggunakan pembaca data.
Anda dapat mempertimbangkan untuk mengeksekusi kueri Entity SQL menggunakan penyedia EntityClient dan menghitung melalui objek EntityDataReader yang dikembalikan. Lakukan ini hanya jika aplikasi Anda menampilkan data tabular menggunakan pembaca data dan tidak memerlukan fasilitas yang disediakan oleh Entity Framework untuk mewujudkan data menjadi objek, melacak perubahan, dan membuat pembaruan. Anda dapat terus menggunakan kode akses data yang ada yang membuat pembaruan pada sumber data, namun Anda dapat menggunakan koneksi yang ada yang diakses dari StoreConnection properti EntityConnection. Untuk informasi selengkapnya, lihat Penyedia EntityClient untuk Entity Framework.
Bekerja dengan DataSets.
Entity Framework menyediakan banyak fungsi yang sama yang disediakan oleh Himpunan Data, termasuk persistensi dalam memori, pelacakan perubahan, pengikatan data, dan pembuatan serial objek sebagai data XML. Untuk informasi selengkapnya, baca Menggunakan Objek.
Jika Entity Framework tidak menyediakan fungsionalitas Himpunan Data yang dibutuhkan oleh aplikasi Anda, Anda masih dapat memanfaatkan manfaat kueri LINQ dengan menggunakan LINQ ke Himpunan Data. Untuk informasi selengkapnya, lihat LINQ ke Himpunan Data.
Pertimbangan untuk Aplikasi yang Mengikat Data ke Kontrol
.NET Framework memungkinkan Anda merangkum data dalam sumber data, seperti Himpunan Data atau kontrol sumber data ASP.NET, lalu mengikat elemen antarmuka pengguna ke kontrol data tersebut. Daftar berikut menjelaskan pertimbangan untuk mengikat kontrol ke data Entity Framework.
Mengikat data ke kontrol.
Saat Anda menanyakan model konseptual, Entity Framework mengembalikan data sebagai objek yang merupakan instans dari jenis entitas. Objek ini dapat terikat langsung ke kontrol, dan pengikatan ini mendukung pembaruan. Ini berarti bahwa perubahan pada data dalam kontrol, seperti baris dalam DataGridView, secara otomatis disimpan ke database saat metode SaveChanges dipanggil.
Jika aplikasi Anda menghitung hasil kueri untuk menampilkan data dalam DataGridView atau jenis kontrol lain yang mendukung pengikatan data, Anda dapat memodifikasi aplikasi Anda untuk mengikat kontrol ke hasil ObjectQuery<T>.
Untuk informasi selengkapnya, lihat Mengikat Objek ke Kontrol.
Kontrol sumber data ASP.NET.
Entity Framework mencakup kontrol sumber data yang dirancang untuk menyederhanakan pengikatan data dalam aplikasi Web ASP.NET. Untuk informasi selengkapnya, lihat Ringkasan Kontrol Server Web EntityDataSource.
Pertimbangan Lainnya
Berikut ini adalah pertimbangan yang mungkin berlaku saat Anda memigrasikan jenis aplikasi tertentu ke Entity Framework.
Aplikasi yang mengekspos layanan data.
Layanan web dan aplikasi yang didasarkan pada Windows Communication Foundation (WCF) mengekspos data dari sumber data yang mendasari dengan menggunakan format pesan permintaan/respons XML. Kerangka Kerja Entitas mendukung serialisasi objek entitas dengan menggunakan serialisasi kontrak data biner, XML, atau WCF. Serialisasi Biner dan WCF mendukung serialisasi penuh grafik objek. Untuk informasi selengkapnya, lihat Membangun Aplikasi N-Tingkat.
Aplikasi yang menggunakan data XML.
Serialisasi objek memungkinkan Anda membuat layanan data Entity Framework. Layanan ini menyediakan data ke aplikasi yang menggunakan data XML, seperti aplikasi Internet berbasis AJAX. Dalam kasus ini, pertimbangkan untuk menggunakan WCF Data Services. Layanan data ini didasarkan pada Model Data Entitas dan menyediakan akses dinamis ke data entitas dengan menggunakan tindakan HTTP Representational State Transfer (REST) standar, seperti GET, PUT, dan POST. Untuk informasi selengkapnya, lihat WCF Data Services 4.5.
Entity Framework tidak mendukung tipe data XML asli. Ini berarti bahwa ketika entitas dipetakan ke tabel dengan kolom XML, properti entitas yang setara untuk kolom XML adalah string. Objek dapat diputus dan diserialisasikan sebagai XML. Untuk informasi selengkapnya, baca Membuat Serialisasi Objek.
Jika aplikasi Anda memerlukan kemampuan untuk mengkueri data XML, Anda masih dapat memanfaatkan manfaat kueri LINQ dengan menggunakan LINQ ke XML. Untuk informasi selengkapnya, lihat LINQ ke XML (C#) atau LINQ to XML (Visual Basic).
Aplikasi yang mempertahankan status.
ASP.NET Aplikasi web harus sering mempertahankan status halaman Web atau sesi pengguna. Objek dalam instans ObjectContext dapat disimpan dalam status tampilan klien atau status sesi di server, dan kemudian diambil dan disambungkan kembali ke konteks objek baru. Untuk informasi selengkapnya, lihat Melampirkan dan Melepaskan Objek.