Bagikan melalui


Attribute-Based Pemetaan

LINQ ke SQL memetakan database SQL Server ke model objek LINQ ke 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, serta kolom dan hubungan ke properti pada kelas tersebut. Anda juga dapat menggunakan atribut untuk memetakan hierarki pewarisan dalam model objek Anda. Untuk informasi selengkapnya, lihat Cara: Membuat Model Objek di 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 mengkodekan atribut sendiri. Untuk informasi selengkapnya, lihat Cara: Membuat Model Objek di Visual Basic atau C#.

Nota

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

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

DatabaseAttribute

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

Harta benda Tipe Bawaan Deskripsi
Name string Lihat Name Digunakan dengan propertinya Name , menentukan nama database.

Untuk informasi selengkapnya, lihat DatabaseAttribute .

Atribut TableAttribute

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

Harta benda Tipe Bawaan Deskripsi
Name string String yang sama dengan nama kelas Menunjuk kelas sebagai kelas entitas yang terkait dengan tabel database.

Untuk informasi selengkapnya, lihat TableAttribute .

Atribut ColumnAttribute

Gunakan atribut ini untuk menunjuk anggota kelas entitas untuk 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 ke SQL menyimpan perubahan ke database. Anggota tanpa atribut ini diasumsikan tidak persisten dan tidak dikirimkan untuk penyisipan atau pembaruan.

Tabel berikut ini menjelaskan properti atribut ini.

Harta benda Tipe Bawaan Deskripsi
AutoSync Sinkronisasi Otomatis Tidak pernah Menginstruksikan Common Language Runtime (CLR) untuk mengambil kembali nilai setelah operasi sisipkan atau perbarui.

Opsi: Selalu, Tidak Pernah, Saat Memperbarui, Saat Menyisipkan.
CanBeNull Boolean (tipe data yang hanya memiliki dua nilai: true atau false) true Menunjukkan bahwa kolom dapat berisi nilai null.
DbType string Tipe kolom database yang disimpulkan Menggunakan jenis database dan pengubah untuk menentukan jenis kolom database.
Expression string Kosong Menentukan kolom komputasi dalam database.
IsDbGenerated Boolean (tipe data yang hanya memiliki dua nilai: true atau false) false Menunjukkan bahwa kolom berisi nilai yang dihasilkan secara otomatis database.
IsDiscriminator Boolean (tipe data yang hanya memiliki dua nilai: true atau false) false Menunjukkan bahwa kolom berisi nilai diskriminator untuk hierarki pewarisan LINQ ke SQL.
IsPrimaryKey Boolean (tipe data yang hanya memiliki dua nilai: true atau false) false Menentukan bahwa anggota kelas ini mewakili kolom yang merupakan atau merupakan bagian dari kunci utama tabel.
IsVersion Boolean (tipe data yang hanya memiliki dua nilai: true atau false) false Mengidentifikasi jenis kolom anggota sebagai tanda waktu database atau nomor versi.
UpdateCheck UpdateCheck Always, kecuali IsVersion adalah true untuk anggota Menentukan bagaimana LINQ ke SQL menangani pendeteksian konflik konkurensi optimis.

Untuk informasi selengkapnya, lihat ColumnAttribute .

Nota

Nilai properti AssociationAttribute dan ColumnAttribute Storage bersifat pembeda huruf besar/kecil. Misalnya, pastikan bahwa nilai yang digunakan dalam atribut untuk properti AssociationAttribute.Storage cocok dengan kasus untuk 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 menunjuk properti untuk mewakili asosiasi dalam database, seperti kunci asing ke hubungan kunci primer. Untuk informasi selengkapnya tentang hubungan, lihat Cara: Memetakan Hubungan Database.

Tabel berikut ini menjelaskan properti atribut ini.

Harta benda Tipe Bawaan Deskripsi
DeleteOnNull Boolean (tipe data yang hanya memiliki dua nilai: true atau false) false Ketika ditempatkan pada asosiasi yang anggota kunci asingnya semuanya tidak dapat bernilai null, objek tersebut akan dihapus saat asosiasi diatur ke null.
DeleteRule string Tidak ada Menambah perilaku penghapusan pada asosiasi.
IsForeignKey Boolean (tipe data yang hanya memiliki dua nilai: true atau false) false Jika true, menunjuk anggota sebagai kunci asing dalam asosiasi yang mewakili hubungan database.
IsUnique Boolean (tipe data yang hanya memiliki dua nilai: true atau false) false Jika benar, menunjukkan batasan keunikan pada kunci asing.
OtherKey string ID kelas terkait Menunjuk satu atau beberapa anggota kelas entitas target sebagai nilai kunci di sisi lain asosiasi.
ThisKey string ID kelas yang berisi Menunjuk anggota kelas entitas ini untuk mewakili nilai kunci di sisi asosiasi ini.

Untuk informasi selengkapnya, lihat AssociationAttribute .

Nota

Nilai properti AssociationAttribute dan ColumnAttribute Storage bersifat pembeda huruf besar/kecil. Misalnya, pastikan bahwa nilai yang digunakan dalam atribut untuk properti AssociationAttribute.Storage cocok dengan kasus untuk 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 ini menjelaskan properti atribut ini.

Harta benda Tipe Bawaan Deskripsi
Code string Tidak ada. Nilai harus disediakan. Menentukan nilai kode yang dimiliki oleh diskriminator.
IsDefault Boolean (tipe data yang hanya memiliki dua nilai: true atau false) false Jika true, menginstansiasi objek dari jenis ini ketika tidak ada nilai diskriminator di dalam penyimpanan yang cocok dengan nilai yang ditentukan.
Type Tipe Tidak ada. Nilai harus disediakan. Menentukan jenis kelas dalam hierarki.

Untuk informasi selengkapnya, lihat InheritanceMappingAttribute .

Atribut FunctionAttribute

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

Tabel berikut ini menjelaskan properti atribut ini.

Harta benda Tipe Bawaan Deskripsi
IsComposable Boolean (tipe data yang hanya memiliki dua nilai: true atau false) false Jika salah, menunjukkan bahwa terdapat pemetaan ke prosedur tersimpan. Jika true, menunjukkan pemetaan ke fungsi yang ditentukan pengguna.
Name string String yang sama dengan nama dalam 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 ini menjelaskan properti atribut ini.

Harta benda Tipe Bawaan Deskripsi
DbType string Tidak ada Menentukan jenis database.
Name string String yang sama dengan nama parameter dalam database Menentukan nama untuk parameter .

Untuk informasi selengkapnya, lihat ParameterAttribute .

Atribut ResultTypeAttribute

Gunakan atribut ini untuk menentukan jenis hasil.

Tabel berikut ini menjelaskan properti atribut ini.

Harta benda Tipe Bawaan Deskripsi
Type Tipe (Tidak Ada) Digunakan pada metode yang terkait dengan prosedur penyimpanan yang mengembalikan IMultipleResults. Menentukan pemetaan tipe 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 ini menjelaskan properti atribut ini.

Harta benda Tipe Bawaan Deskripsi
Name string Sama seperti nama dalam database Menentukan nama tabel, kolom, dan sebagainya.
Storage string Aksesor publik Menentukan nama bidang penyimpanan yang dasar.

Untuk informasi selengkapnya, lihat DataAttribute .

Lihat juga