Bagikan melalui


jenis kompleks

Jenis kompleks adalah templat untuk mendefinisikan properti yang kaya dan terstruktur pada jenis entitas atau pada jenis kompleks lainnya. Setiap templat berisi yang berikut:

  • Nama yang unik. (Diperlukan)

    Catatan

    Nama jenis kompleks tidak boleh sama dengan nama jenis entitas dalam namespace yang sama.

  • Data dalam bentuk satu atau beberapa properti. (Opsional.)

    Catatan

    Properti dari jenis kompleks bisa menjadi jenis kompleks lainnya.

Jenis kompleks mirip dengan jenis entitas di mana jenis kompleks dapat membawa payload data dalam bentuk properti jenis primitif atau jenis kompleks lainnya. Namun, ada beberapa perbedaan utama antara jenis kompleks dan jenis entitas:

  • Jenis kompleks tidak memiliki identitas dan oleh karena itu tidak dapat muncul secara independen. Jenis kompleks hanya dapat muncul sebagai properti pada jenis entitas atau jenis kompleks lainnya.

  • Jenis kompleks tidak dapat berpartisipasi dalam asosiasi. Tidak ada akhir asosiasi yang bisa menjadi jenis kompleks, dan oleh karena itu navigation properties tidak dapat didefinisikan pada jenis kompleks.

Contoh

ADO.NET Entity Framework menggunakan bahasa khusus domain (DSL) yang disebut bahasa definisi skema konseptual (CSDL) untuk mendefinisikan model konseptual. CSDL berikut mendefinisikan tipe kompleks, Alamat, dengan properti tipe primitif StreetAddress, City, StateOrProvince, Country, dan PostalCode.

<ComplexType Name="Address" >
  <Property Type="String" Name="StreetAddress" Nullable="false" />
  <Property Type="String" Name="City" Nullable="false" />
  <Property Type="String" Name="StateOrProvince" Nullable="false" />
  <Property Type="String" Name="Country" Nullable="false" />
  <Property Type="String" Name="PostalCode" Nullable="false" />
</ComplexType>

Untuk menentukan jenis kompleks Address (di atas) sebagai properti pada jenis entitas, Anda harus mendeklarasikan jenis properti dalam definisi jenis entitas. CSDL berikut mendeklarasikan properti Address sebagai jenis kompleks pada jenis entitas (Publisher):

<EntityType Name="Publisher">
      <Key>
        <PropertyRef Name="Id" />
      </Key>
      <Property Type="Int32" Name="Id" Nullable="false" />
      <Property Type="String" Name="Name" Nullable="false" />
      <Property Type="BooksModel.Address" Name="Address" Nullable="false" />
      <NavigationProperty Name="Books" Relationship="BooksModel.PublishedBy"
                          FromRole="Publisher" ToRole="Book" />
    </EntityType>

Lihat juga