tulajdonság
A tulajdonságok az entitástípusok és az összetett típusok alapvető építőelemei. A tulajdonságok határozzák meg az entitástípus-példányok vagy összetett típusú példányok által tartalmazott adatok alakját és jellemzőit. A fogalmi modell tulajdonságai az osztályban definiált tulajdonságokhoz hasonlóak. Ugyanúgy, ahogyan az osztály tulajdonságai meghatározzák az osztály alakját, és az objektumokra vonatkozó információkat hordoznak, a fogalmi modell tulajdonságai meghatározzák az entitástípus alakját, és az entitástípus-példányokra vonatkozó információkat hordoznak.
Feljegyzés
A jelen témakörben ismertetett tulajdonságok eltérnek a navigációs tulajdonságoktól. További információkért tekintse meg a navigációs tulajdonságokat.
A tulajdonságdefiníció a következő információkat tartalmazza:
Tulajdonságnév. (Kötelező)
Tulajdonságtípus. (Kötelező)
Egy sor aspektus. (Nem kötelező)
A tulajdonság tartalmazhat primitív adatokat (például sztringet, egész számot vagy logikai értéket) vagy strukturált adatokat (például összetett típust). A primitív típusú tulajdonságokat skaláris tulajdonságoknak is nevezik. További információ: Entity Data Model: Primitív adattípusok.
Feljegyzés
Egy összetett típusnak is lehetnek összetett tulajdonságokkal rendelkező tulajdonságai.
Példa
Az alábbi ábrán egy három entitástípussal rendelkező fogalmi modell látható: Book
, Publisher
és Author
. Minden entitástípus több tulajdonsággal rendelkezik, bár az egyes tulajdonságok típusadatai nem jelennek meg a diagramban. Az entitáskulcsokat tartalmazó tulajdonságok a (Kulcs) jelöléssel vannak jelölve.
A ADO.NET Entity Framework egy tartományspecifikus nyelvet (DSL) használ, amelyet fogalmi sémadefiníciós nyelvnek (CSDL) hívunk a fogalmi modellek meghatározásához. A következő CSDL határozza meg az Book
entitás típusát (a fenti ábrán látható módon), és XML-attribútumok használatával jelzi az egyes tulajdonságok típusát és nevét. Az opcionális szempontot Nullable
egy XML-attribútummal is definiáljuk.
<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>
Lehetséges, hogy a diagramon látható tulajdonságok egyike egy összetett típusú tulajdonság. Az entitástípus tulajdonsága lehet például Address
egy összetett típusú tulajdonság, amely több skaláris tulajdonságból áll, például StreetAddress
: , City
, StateOrProvince
Country
és PostalCode
.Publisher
Egy ilyen összetett típus CSDL-ábrázolása a következő lenne:
<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>