associationstyp
En associationstyp (kallas även en association) är den grundläggande byggstenen för att beskriva relationer i entitetsdatamodellen (EDM). I en konceptmodell representerar en association en relation mellan två entitetstyper (till exempel Customer
och Order
). I ett program representerar en instans av en association en specifik association (till exempel en association mellan en instans av Customer
och en instans av Order
). Associationinstanser grupperas logiskt i en associationsuppsättning.
En associationsdefinition innehåller följande information:
Ett unikt namn. (Krävs)
Två associationer slutar, en för varje entitetstyp i relationen. (Krävs)
Kommentar
En association kan inte representera en relation mellan fler än två entitetstyper. En association kan dock definiera en självrelation genom att ange samma entitetstyp för var och en av dess associationer.
En begränsning för referensintegritet. (Valfritt)
Varje associationsslut måste ange en associationsluts multiplicitet som anger antalet instanser av entitetstyp som kan finnas i ena änden av associationen. En association slut multiplicity kan ha ett värde på en (1), noll eller en (0..1) eller många (*). Entitetstypinstanser i ena änden av en association kan nås via navigeringsegenskaper eller sekundärnycklar om de exponeras för en entitetstyp. Mer information finns i Entitetsdatamodell: Sekundärnycklar.
Exempel
Diagrammet nedan visar en konceptmodell med två associationer: PublishedBy
och WrittenBy
. Associationens slut för associationen PublishedBy
är entitetstyperna Book
och Publisher
. Multiplicityen Publisher
av avsluta är en (1) och multiplicityen Book
av avsluta är många (*), som indikerar att en utgivare publicerar många bokar, och en boka publiceras av en utgivare.
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 associationen PublishedBy
som visas i diagrammet ovan:
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
</Association>