Bagikan melalui


Pemetaan Berbasis Atribut

LINQ to SQL memetakan database SQL Server ke model objek LINQ to SQL dengan menerapkan atribut atau dengan menggunakan file pemetaan eksternal. Topik ini menguraikan pendekatan berbasis atribut.

Dalam bentuknya yang paling dasar, LINQ to SQL memetakan database ke DataContext, tabel ke kelas, dan kolom serta hubungan ke properti di kelas tersebut. Anda juga dapat menggunakan atribut untuk memetakan hierarki pewarisan dalam model objek Anda. Untuk informasi selengkapnya, lihat Cara: Membuat Model Objek dalam Visual Basic atau C#.

Pengembang yang menggunakan Visual Studio biasanya melakukan pemetaan berbasis atribut dengan menggunakan Object Relational Designer. Anda juga dapat menggunakan alat baris perintah SQLMetal, atau Anda dapat mengodekan atribut sendiri. Untuk informasi selengkapnya, lihat Cara: Membuat Model Objek dalam Visual Basic atau C#.

Catatan

Anda juga dapat memetakan dengan menggunakan file XML eksternal. Untuk informasi selengkapnya, baca Pemetaan Eksternal.

Bagian berikut menjelaskan pemetaan berbasis atribut secara lebih rinci. Untuk informasi lebih lanjut, lihat namespace layanan System.Data.Linq.Mapping.

Atribut DatabaseAttribute

Gunakan atribut ini untuk menentukan nama default database ketika nama tidak diberikan oleh koneksi. Atribut ini bersifat opsional, tetapi jika Anda menggunakannya, Anda harus menerapkan properti Name, seperti yang dijelaskan dalam tabel berikut.

Properti Jenis Default Deskripsi
Name String Lihat Name Digunakan dengan properti Name, menentukan nama database.

Untuk informasi selengkapnya, lihat DatabaseAttribute .

Atribut TableAttribute

Gunakan atribut ini untuk menetapkan kelas sebagai kelas entitas yang terkait dengan tabel atau tampilan database. LINQ to SQL memperlakukan kelas yang memiliki atribut ini sebagai kelas persisten. Tabel berikut menjelaskan properti Name.

Properti Jenis Default Deskripsi
Name String String yang sama dengan nama kelas Menetapkan kelas sebagai kelas entitas yang terkait dengan tabel database.

Untuk informasi selengkapnya, lihat TableAttribute .

Atribut ColumnAttribute

Gunakan atribut ini untuk menunjuk anggota kelas entitas guna mewakili kolom dalam tabel database. Anda dapat menerapkan atribut ini ke bidang atau properti apa pun.

Hanya anggota yang Anda identifikasi sebagai kolom yang diambil dan dipertahankan saat LINQ to SQL menyimpan perubahan ke database. Anggota tanpa atribut ini dianggap tidak persisten dan tidak dikirimkan untuk disisipkan atau diperbarui.

Tabel berikut menjelaskan properti atribut ini.

Properti Jenis Default Deskripsi
AutoSync AutoSync Tidak pernah Menginstruksikan runtime bahasa umum (CLR) untuk mengambil nilai setelah operasi penyisipan atau pembaruan.

Opsi: Selalu, Tidak Pernah, OnUpdate, OnInsert.
CanBeNull Boolean true Menunjukkan bahwa kolom dapat berisi nilai null.
DbType String Jenis kolom database yang disimpulkan Menggunakan jenis database dan pengubah untuk menentukan jenis kolom database.
Expression String Kosong Mendefinisikan kolom yang dikomputasi dalam database.
IsDbGenerated Boolean false Menunjukkan bahwa kolom berisi nilai yang dihasilkan database secara otomatis.
IsDiscriminator Boolean false Menunjukkan bahwa kolom berisi nilai diskriminator untuk hierarki pewarisan LINQ to SQL.
IsPrimaryKey Boolean false Menentukan bahwa anggota kelas ini mewakili kolom yang merupakan atau merupakan bagian dari kunci utama tabel.
IsVersion Boolean false Mengidentifikasi jenis kolom anggota sebagai stempel waktu database atau nomor versi.
UpdateCheck UpdateCheck Always, kecuali IsVersion adalah true untuk anggota Menentukan bagaimana LINQ to SQL mendekati deteksi konflik konkurensi optimis.

Untuk informasi selengkapnya, lihat ColumnAttribute .

Catatan

Nilai properti Penyimpanan AssociationAttribute dan ColumnAttribute peka terhadap huruf besar/kecil. Misalnya, pastikan bahwa nilai yang digunakan dalam atribut untuk properti AssociationAttribute.Storage cocok dengan nama properti terkait yang digunakan di tempat lain dalam kode. Ini berlaku untuk semua bahasa pemrograman .NET, bahkan yang biasanya tidak peka huruf besar/kecil, termasuk Visual Basic. Untuk informasi selengkapnya tentang properti Penyimpanan, lihat DataAttribute.Storage.

Atribut AssociationAttribute

Gunakan atribut ini untuk menetapkan properti guna mewakili asosiasi dalam database, seperti kunci asing ke hubungan kunci utama. Untuk informasi selengkapnya tentang hubungan, lihat Cara: Memetakan Hubungan Database.

Tabel berikut menjelaskan properti atribut ini.

Properti Jenis Default Deskripsi
DeleteOnNull Boolean false Ketika ditempatkan pada asosiasi yang anggota kunci asingnya semuanya tidak dapat dibatalkan, menghapus objek ketika asosiasi diatur ke nol.
DeleteRule String Tidak Menambahkan perilaku hapus ke asosiasi.
IsForeignKey Boolean false Jika true, tunjuk anggota sebagai kunci asing dalam asosiasi yang mewakili hubungan database.
IsUnique Boolean false Jika true, menunjukkan batasan keunikan pada kunci asing.
OtherKey String ID dari kelas terkait Menunjuk satu atau beberapa anggota kelas entitas target sebagai nilai kunci di sisi lain dari asosiasi.
ThisKey String ID dari kelas yang mengandung Menunjuk anggota kelas entitas ini untuk mewakili nilai kunci di sisi asosiasi ini.

Untuk informasi selengkapnya, lihat AssociationAttribute .

Catatan

Nilai properti Penyimpanan AssociationAttribute dan ColumnAttribute peka terhadap huruf besar/kecil. Misalnya, pastikan bahwa nilai yang digunakan dalam atribut untuk properti AssociationAttribute.Storage cocok dengan nama properti terkait yang digunakan di tempat lain dalam kode. Ini berlaku untuk semua bahasa pemrograman .NET, bahkan yang biasanya tidak peka huruf besar/kecil, termasuk Visual Basic. Untuk informasi selengkapnya tentang properti Penyimpanan, lihat DataAttribute.Storage.

Atribut InheritanceMappingAttribute

Gunakan atribut ini untuk memetakan hierarki pewarisan.

Tabel berikut menjelaskan properti atribut ini.

Properti Jenis Default Deskripsi
Code String Tidak ada. Nilai harus diberikan. Menentukan nilai kode diskriminator.
IsDefault Boolean false Jika true, buat instans objek jenis ini saat tidak ada nilai diskriminator di penyimpanan yang cocok dengan salah satu nilai yang ditentukan.
Type Jenis Tidak ada. Nilai harus diberikan. Menentukan jenis kelas dalam hierarki.

Untuk informasi selengkapnya, lihat InheritanceMappingAttribute .

Atribut FunctionAttribute

Gunakan atribut ini untuk menetapkan metode yang mewakili prosedur tersimpan atau fungsi yang ditentukan pengguna dalam database.

Tabel berikut menjelaskan properti atribut ini.

Properti Jenis Default Deskripsi
IsComposable Boolean false Jika false, menunjukkan pemetaan ke prosedur tersimpan. Jika true, menunjukkan pemetaan ke fungsi yang ditentukan pengguna.
Name String String yang sama dengan nama di database Menentukan nama prosedur tersimpan atau fungsi yang ditentukan pengguna.

Untuk informasi selengkapnya, lihat FunctionAttribute .

Atribut ParameterAttribute

Gunakan atribut ini untuk memetakan parameter input pada metode prosedur tersimpan.

Tabel berikut menjelaskan properti atribut ini.

Properti Jenis Default Deskripsi
DbType String Tidak Menentukan jenis database.
Name String String yang sama dengan nama parameter di database Menentukan nama untuk parameter.

Untuk informasi selengkapnya, lihat ParameterAttribute .

Atribut ResultTypeAttribute

Gunakan atribut ini untuk menentukan jenis hasil.

Tabel berikut menjelaskan properti atribut ini.

Properti Jenis Default Deskripsi
Type Jenis (Tidak Ada) Digunakan pada metode yang dipetakan ke prosedur tersimpan yang mengembalikan IMultipleResults. Mendeklarasikan pemetaan jenis yang valid atau diharapkan untuk prosedur tersimpan.

Untuk informasi selengkapnya, lihat ResultTypeAttribute .

Atribut DataAttribute

Gunakan atribut ini untuk menentukan nama dan bidang penyimpanan privat.

Tabel berikut menjelaskan properti atribut ini.

Properti Jenis Default Deskripsi
Name String Sama seperti nama di database Menentukan nama tabel, kolom, dan sebagainya.
Storage String Pengakses publik Menentukan nama bidang penyimpanan yang mendasarinya.

Untuk informasi selengkapnya, lihat DataAttribute .

Lihat juga