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 .