Dela via


egenskap

Egenskaper är de grundläggande byggstenarna för entitetstyper och komplexa typer. Egenskaper definierar formen och egenskaperna för data som en entitetstypinstans eller instans av komplex typ ska innehålla. Egenskaper i en konceptmodell är analoga med egenskaper som definierats i en klass. På samma sätt som egenskaper för en klass definierar klassens form och bär information om objekt, definierar egenskaper i en konceptmodell formen på en entitetstyp och bär information om entitetstypinstanser.

Kommentar

Egenskaper, som beskrivs i det här avsnittet, skiljer sig från navigeringsegenskaper. Mer information finns i navigeringsegenskaper.

En egenskapsdefinition innehåller följande information:

  • Ett egenskapsnamn. (Krävs)

  • En egenskapstyp. (Krävs)

  • En uppsättning fasetter. (Valfritt)

En egenskap kan innehålla primitiva data (till exempel en sträng, ett heltal eller ett booleskt värde) eller strukturerade data (till exempel en komplex typ). Egenskaper som är av primitiv typ kallas även för skalära egenskaper. Mer information finns i Entitetsdatamodell: Primitiva datatyper.

Kommentar

En komplex typ kan i sig ha egenskaper som är komplexa typer.

Exempel

Diagrammet nedan visar en konceptmodell med tre entitetstyper: Book, Publisheroch Author. Varje entitetstyp har flera egenskaper, även om typinformation för varje egenskap inte förmedlas i diagrammet. Egenskaper som är entitetsnycklar anges med (nyckel).

Example model with three entity types

ADO.NET Entity Framework använder ett domänspecifikt språk (DSL) som kallas CSDL (Conceptual Schema Definition Language) för att definiera konceptuella modeller. Följande CSDL definierar entitetstypen Book (som visas i diagrammet ovan) och anger typen och namnet på varje egenskap med hjälp av XML-attribut. En valfri aspekt, Nullable, definieras också med hjälp av ett XML-attribut.

<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>

Det är möjligt att en av egenskaperna som visas i diagrammet är en komplex typegenskap. Egenskapen för entitetstypen kan till exempel Address vara en komplex typegenskap som består av flera skalära egenskaper, till exempel StreetAddress, City, StateOrProvince, Countryoch PostalCode.Publisher CSDL-representationen av en sådan komplex typ skulle vara följande:

<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>

Se även