akhir asosiasi
Akhir asosiasi mengidentifikasi jenis entitas di salah satu ujung asosiasi dan jumlah instans jenis entitas yang dapat ada di akhir asosiasi. Akhir asosiasi didefinisikan sebagai bagian dari asosiasi; sebuah asosiasi harus memiliki tepat dua akhir asosiasi. Properti navigasi memungkinkan navigasi dari satu akhir asosiasi ke yang lain.
Definisi akhir asosiasi berisi informasi berikut:
Salah satu jenis entitas yang terlibat dalam asosiasi. (Diperlukan)
Catatan
Untuk asosiasi tertentu, jenis entitas yang ditentukan untuk setiap akhir asosiasi bisa sama. Ini menciptakan asosiasi mandiri.
Sebuah kardinalitas akhir asosiasi yang menunjukkan jumlah instans jenis entitas yang dapat berada di salah satu akhir asosiasi. Kardinalitas ujung asosiasi dapat memiliki nilai satu (1), nol atau satu (0,.1), atau banyak (*).
Nama untuk akhir asosiasi. (Opsional)
Informasi tentang operasi yang dilakukan pada akhir asosiasi, seperti kaskade pada penghapusan. (Opsional)
Contoh
Diagram di bawah menunjukkan model konseptual dengan dua asosiasi: PublishedBy
dan WrittenBy
. Akhir asosiasi untuk asosiasi PublishedBy
adalah jenis entitas Book
dan Publisher
. Kardinalitas akhir Publisher
adalah satu (1) dan kardinalitas akhir Book
adalah banyak (*), menunjukkan bahwa penerbit menerbitkan banyak buku dan buku diterbitkan oleh satu penerbit.
ADO.NET Entity Framework menggunakan bahasa khusus domain (DSL) yang disebut bahasa definisi skema konseptual (CSDL) untuk mendefinisikan model konseptual. CSDL di bawah mendefinisikan asosiasi PublishedBy
yang ditunjukkan pada diagram di atas. Perhatikan bahwa jenis, nama, dan kardinalitas setiap akhir asosiasi ditentukan oleh atribut XML (masing-masing atribut Type
, Role
, dan Multiplicity
). Informasi opsional tentang operasi yang dilakukan di akhir ditentukan dalam elemen XML (elemen OnDelete
). Dalam hal ini, jika penerbit dihapus, demikian juga semua buku terkait.
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" >
<OnDelete Action="Cascade" />
</End>
</Association>