sekundärnyckelegenskap
En sekundärnyckelegenskap i entitetsdatamodellen (EDM) är en primitiv typegenskap (eller en uppsättning primitiva typegenskaper) för en entitetstyp som innehåller entitetsnyckeln för en annan entitetstyp.
En sekundärnyckelegenskap motsvarar en sekundärnyckelkolumn i en relationsdatabas. På samma sätt som sekundärnyckelkolumner används i en relationsdatabas för att skapa relationer mellan rader i tabeller används sekundärnyckelegenskaper i en konceptmodell för att upprätta associationer mellan entitetstyper. En begränsning för referensintegritet används för att definiera en association mellan två entitetstyper när en av typerna har en sekundärnyckelegenskap.
Exempel
Diagrammet nedan visar en konceptmodell med tre entitetstyper: Book
, Publisher
och Author
. Entitetstypen Book
har en egenskap, PublisherId
, som refererar till entitetsnyckeln för Publisher
entitetstypen när du definierar en referensintegritetsbegränsning för associationen PublishedBy
.
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 använder egenskapen PublisherId
sekundärnyckel för att definiera en referensintegritetsbegränsning för associationen PublishedBy
som visas i den konceptuella modell som visas ovan.
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" >
</End>
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
<ReferentialConstraint>
<Principal Role="Publisher">
<PropertyRef Name="Id" />
</Principal>
<Dependent Role="Book">
<PropertyRef Name="PublisherId" />
</Dependent>
</ReferentialConstraint>
</Association>