Bagikan melalui


Membuat hubungan antara himpunan data dalam aplikasi .NET Framework

Catatan

Himpunan data dan kelas terkait adalah teknologi .NET Framework warisan dari awal 2000-an yang memungkinkan aplikasi untuk bekerja dengan data dalam memori saat aplikasi terputus dari database. Himpunan data tersebut sangat berguna untuk aplikasi yang mengaktifkan pengguna guna memodifikasi data dan mempertahankan perubahan kembali ke database. Meskipun himpunan data telah terbukti menjadi teknologi yang sangat sukses, sebaiknya aplikasi .NET baru menggunakan Entity Framework Core. Entity Framework menyediakan cara yang lebih alami untuk bekerja dengan data tabular sebagai model objek, dan memiliki antarmuka pemrograman yang lebih sederhana.

Himpunan data yang berisi tabel data terkait menggunakan objek DataRelation untuk mewakili hubungan induk/turunan antartabel dan mengembalikan rekaman terkait satu sama lain. Menambahkan tabel terkait ke himpunan data dengan menggunakan Wizard Konfigurasi Sumber Data, atau Perancang Himpunan Data, yang membuat dan mengonfigurasi objek DataRelation untuk Anda.

Objek DataRelation melakukan dua fungsi:

  • Objek ini dapat menyediakan catatan yang dikaitkan dengan catatan yang sedang Anda kerjakan. Objek ini menyediakan rekaman turunan jika Anda berada dalam rekaman induk (GetChildRows) dan menyediakan rekaman induk jika Anda bekerja dengan rekaman turunan (GetParentRow).

  • Objek ini dapat memberlakukan batasan untuk integritas referensial, seperti menghapus rekaman turunan terkait saat Anda menghapus rekaman induk.

Anda harus memahami perbedaan antara gabungan sejati dan fungsi objek DataRelation. Dalam gabungan sejati, rekaman diambil dari tabel induk dan turunan, lalu dimasukkan ke dalam satu set rekaman datar. Saat Anda menggunakan objek DataRelation, tidak ada perangkat rekam baru yang dibuat. Sebaliknya, DataRelation melacak hubungan antartabel dan menjaga rekaman induk dan turunan tetap sinkron.

Objek dan batasan DataRelation

Objek DataRelation juga digunakan untuk membuat dan memberlakukan batasan berikut:

  • Batasan unik, yang menjamin bahwa kolom dalam tabel tidak berisi duplikat.

  • Batasan kunci asing, yang dapat digunakan untuk mempertahankan integritas referensial antara tabel induk dan turunan dalam himpunan data.

Batasan yang Anda tetapkan dalam objek DataRelation diimplementasikan dengan otomatis membuat objek atau properti pengaturan yang sesuai. Jika Anda membuat batasan kunci asing dengan menggunakan objek DataRelation, instans kelas ForeignKeyConstraint ditambahkan ke properti ChildKeyConstraint objek DataRelation.

Batasan unik diimplementasikan baik dengan hanya mengatur properti Unique kolom data ke true maupun dengan menambahkan instans kelas UniqueConstraint ke properti ParentKeyConstraint objek DataRelation. Untuk informasi tentang menangguhkan batasan dalam himpunan data, lihat Menonaktifkan batasan saat mengisi himpunan data.

Aturan integritas referensial

Sebagai bagian dari batasan kunci asing, Anda dapat menetapkan aturan integritas referensial yang diterapkan pada tiga titik:

  • Ketika rekaman induk diperbarui

  • Ketika rekaman induk dihapus

  • Ketika perubahan diterima atau ditolak

Aturan yang dapat Anda buat ditetapkan dalam enumerasi Rule dan tercantum dalam tabel berikut.

Aturan batasan kunci asing Perbuatan
Cascade Perubahan (pembaruan atau penghapusan) yang dilakukan pada rekaman induk juga dibuat dalam rekaman terkait dalam tabel turunan.
SetNull Rekaman turunan tidak dihapus, tetapi kunci asing dalam rekaman turunan diatur ke DBNull. Dengan pengaturan ini, rekaman anak turunan dibiarkan sebagai "orphan", yang berarti rekaman tersebut tidak memiliki hubungan dengan rekaman induk. Catatan: Menggunakan aturan ini dapat mengakibatkan data yang tidak valid dalam tabel turunan.
SetDefault Kunci asing dalam rekaman turunan terkait diatur ke nilai defaultnya (seperti yang ditetapkan oleh properti kolom DefaultValue).
None Tidak ada perubahan yang dilakukan pada rekaman turunan terkait. Dengan pengaturan ini, rekaman turunan dapat berisi referensi ke rekaman induk yang tidak valid.

Untuk informasi selengkapnya tentang pembaruan dalam tabel himpunan data, lihat Menyimpan data kembali ke database.

Relasi khusus batasan

Saat Anda membuat objek DataRelation, Anda memiliki opsi untuk menetapkan bahwa relasi hanya digunakan untuk memberlakukan batasan—yaitu, relasi itu juga tidak akan digunakan untuk mengakses rekaman terkait. Anda dapat menggunakan opsi ini untuk menghasilkan himpunan data yang sedikit lebih efisien dan yang berisi lebih sedikit metode daripada himpunan data dengan kemampuan rekaman terkait. Namun, Anda tidak akan dapat mengakses rekaman terkait. Misalnya, relasi khusus batasan mencegah Anda menghapus rekaman induk yang masih memiliki rekaman turunan, dan Anda tidak dapat mengakses rekaman turunan melalui induknya.

Membuat relasi data secara manual di Perancang Himpunan Data

Saat Anda membuat tabel data dengan menggunakan alat desain data di Visual Studio, hubungan dibuat secara otomatis jika informasi dapat dikumpulkan dari sumber data Anda. Jika Anda menambahkan tabel data secara manual dari tab Himpunan Data di Kotak Alat, Anda mungkin harus membuat hubungan secara manual. Untuk informasi tentang membuat objek DataRelation secara terprogram, lihat Menambahkan DataRelation.

Hubungan antara tabel data muncul sebagai garis di Perancang Himpunan Data, dengan kunci dan glif tak terbatas yang menggambarkan aspek hubungan satu-ke-banyak. Secara default, nama hubungan tidak muncul di permukaan desain.

Catatan

Komputer Anda mungkin menampilkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam artikel ini. Anda mungkin menggunakan edisi Visual Studio yang berbeda atau pengaturan lingkungan yang berbeda. Untuk informasi selengkapnya, lihat Mempersonalisasi IDE.

Untuk membuat hubungan antara dua tabel data

  1. Buka himpunan data Anda di Perancang Himpunan Data. Untuk informasi selengkapnya, lihat Panduan: Membuat Himpunan Data di Perancang Himpunan Data.

  2. Seret objek Relasi dari kotak alat Himpunan Data ke tabel data turunan dalam hubungan.

    Kotak dialog Relasi terbuka, yang mengisi kotak Tabel Turunan dengan tabel yang menjadi target penyeretan objek Relasi Anda.

  3. Pilih tabel induk dari kotak Tabel Induk. Tabel induk berisi rekaman di sisi "satu" dari hubungan satu-ke-banyak.

  4. Verifikasikan bahwa tabel turunan yang benar ditampilkan dalam kotak Tabel Turunan. Tabel turunan berisi rekaman di sisi "banyak" dari hubungan satu-ke-banyak.

  5. Ketik nama untuk hubungan dalam kotak Nama, atau biarkan nama default berdasarkan tabel yang dipilih. Ini adalah nama objek DataRelation aktual dalam kode.

  6. Pilih kolom yang menggabungkan tabel di daftar Kolom Kunci dan Kolom Kunci Asing.

  7. Pilih apakah akan membuat relasi, batasan, atau keduanya.

  8. Pilih atau kosongkan kotak Relasi Berlapis. Memilih opsi ini akan mengatur properti Nested ke true, dan menyebabkan baris turunan relasi ditumpuk dalam kolom induk ketika baris tersebut ditulis sebagai data XML atau disinkronkan dengan XmlDataDocument. Untuk informasi selengkapnya, lihat Sarangkan DataRelations.

  9. Atur aturan yang akan diberlakukan saat Anda membuat perubahan pada rekaman dalam tabel ini. Untuk informasi selengkapnya, lihat Rule .

  10. Klik OK untuk membuat hubungan. Garis relasi muncul pada perancang di antara dua tabel.

Untuk menampilkan nama relasi di Perancang Himpunan Data

  1. Buka himpunan data Anda di Perancang Himpunan Data. Untuk informasi selengkapnya, lihat Panduan: Membuat Himpunan Data di Perancang Himpunan Data.

  2. Dari menu Data, pilih perintah Tampilkan Label Relasi untuk menampilkan nama relasi. Bersihkan perintah itu untuk menyembunyikan nama relasi.