properti
Properti adalah blok pembangun dasar jenis entitas dan jenis kompleks. Properti menentukan bentuk dan karakteristik data yang akan dikandung oleh instans jenis entitas atau instans jenis kompleks. Properti dalam model konseptual adalah sama dengan properti yang ditentukan pada kelas. Dengan cara yang sama bahwa properti pada kelas menentukan bentuk kelas dan membawa informasi tentang objek, properti dalam model konseptual menentukan bentuk jenis entitas dan membawa informasi tentang instans jenis entitas.
Catatan
Properti, seperti yang dijelaskan dalam topik ini, berbeda dari properti navigasi. Untuk mengetahui informasi selengkapnya, lihat properti navigasi.
Definisi properti berisi informasi berikut:
Nama properti. (Diperlukan)
Jenis properti. (Diperlukan)
Satu set faset. (Opsional)
Properti dapat berisi data primitif (seperti string, bilangan bulat, atau nilai Boolean), atau data terstruktur (seperti jenis kompleks). Properti yang berjenis primitif juga disebut properti skalar. Untuk informasi selengkapnya, lihat Model Data Entitas: Jenis Data Primitif.
Catatan
Jenis kompleks dapat, dengan sendirinya, memiliki properti yang merupakan jenis kompleks.
Contoh
Diagram berikut menunjukkan model konseptual dengan tiga jenis entitas: Book
, Publisher
, dan Author
. Setiap jenis entitas memiliki beberapa properti, meskipun informasi jenis untuk setiap properti tidak disampaikan dalam diagram. Properti yang merupakan kunci entitas ditandai dengan (Kunci).
ADO.NET Entity Framework menggunakan bahasa khusus domain (DSL) yang disebut bahasa definisi skema konseptual (CSDL) untuk mendefinisikan model konseptual. CSDL berikut mendefinisikan jenis entitas Book
(seperti yang ditunjukkan pada diagram di atas) dan menunjukkan jenis dan nama setiap properti dengan menggunakan atribut XML. Faset opsional, Nullable
, juga didefinisikan dengan menggunakan atribut XML.
<EntityType Name="Book">
<Key>
<PropertyRef Name="ISBN" />
</Key>
<Property Type="String" Name="ISBN" Nullable="false" />
<Property Type="String" Name="Title" Nullable="false" />
<Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
<NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
FromRole="Book" ToRole="Publisher" />
<NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
FromRole="Book" ToRole="Author" />
</EntityType>
Ada kemungkinan bahwa salah satu properti yang ditunjukkan dalam diagram adalah properti jenis kompleks. Misalnya, properti Address
pada jenis entitasPublisher
bisa saja properti jenis kompleks yang terdiri dari beberapa properti skalar, seperti StreetAddress
, City
, StateOrProvince
, Country
, dan PostalCode
. Representasi CSDL dari jenis kompleks seperti itu adalah sebagai berikut:
<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>