Megosztás a következőn keresztül:


összetett típus

Az összetett típus olyan sablon, amely gazdag, strukturált tulajdonságokat határoz meg entitástípusokon vagy más összetett típusokon . Minden sablon a következőket tartalmazza:

  • Egyedi név. (Kötelező)

    Feljegyzés

    Egy összetett típus neve nem lehet ugyanaz, mint egy entitástípus neve ugyanabban a névtérben.

  • Adatok egy vagy több tulajdonság formájában. (Választható.)

    Feljegyzés

    Egy összetett típusú tulajdonság lehet egy másik összetett típus is.

Az összetett típus hasonló egy entitástípushoz, mert egy összetett típus képes az adat hasznos adatait primitív típusú tulajdonságok vagy más összetett típusok formájában hordozni. Az összetett típusok és az entitástípusok között azonban van néhány alapvető különbség:

  • Az összetett típusok nem rendelkeznek identitásokkal, ezért nem létezhetnek egymástól függetlenül. Az összetett típusok csak entitástípusok vagy más összetett típusok tulajdonságaiként létezhetnek.

  • Az összetett típusok nem vehetnek részt a társításokban. A társítás egyik vége sem lehet összetett típus, ezért a navigációs tulajdonságok nem határozhatók meg összetett típusok esetében.

Példa

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. Az alábbi CSDL egy összetett típust, a Címet definiálja a primitív típustulajdonságokkal StreetAddress, City, StateOrProvince, Countryés 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>

Ha az összetett típust Address (fent) egy entitástípus tulajdonságaként szeretné definiálni, deklarálnia kell a tulajdonságtípust az entitástípus definíciójában. A következő CSDL komplex típusként deklarálja a Address tulajdonságot egy entitástípuson (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>

Lásd még