Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Zestaw skojarzeń jest kontenerem logicznym dla wystąpień skojarzeń tego samego typu. Zestaw skojarzeń nie jest konstrukcją modelowania danych; oznacza to, że nie opisuje struktury danych ani relacji. Zamiast tego zestaw skojarzeń udostępnia konstrukcję dla środowiska hostingu lub magazynowania (takiego jak CLR lub baza danych SQL Server), aby grupować wystąpienia skojarzeń i odwzorować je do magazynu danych.
Zestaw skojarzeń jest definiowany w kontenerze jednostki, który jest logicznym grupowaniem zestawów jednostek i zestawów skojarzeń.
Definicja zestawu skojarzeń zawiera następujące informacje:
Nazwa zestawu skojarzeń. (Wymagane)
Stowarzyszenie, które będzie zawierać wystąpienia. (Wymagane)
Przykład
Na poniższym diagramie przedstawiono model koncepcyjny z dwoma skojarzeniami: PublishedBy
, i WrittenBy
. Chociaż informacje o zestawach skojarzeń nie są przekazywane na diagramie, następny diagram przedstawia przykład zestawów skojarzeń i zestawów jednostek opartych na tym modelu.
W poniższym przykładzie przedstawiono zestaw skojarzeń (PublishedBy
) i dwa zestawy jednostek (Books
i Publishers
) na podstawie przedstawionego powyżej modelu koncepcyjnego. Bi w zestawie encji Books
reprezentuje wystąpienie typu encji Book
w czasie wykonywania. Podobnie Pj reprezentuje Publisher
wystąpienie w Publishers
zbiorze jednostek. BiPj reprezentuje wystąpienie skojarzenia PublishedBy
w PublishedBy
zestawie skojarzeń.
ADO.NET Entity Framework używa języka specyficznego dla domeny (DSL) nazywanego koncepcyjnym językiem definicji schematu (CSDL) do definiowania modeli koncepcyjnych. Poniższy plik CSDL definiuje kontener jednostki z jednym zestawem skojarzeń dla każdego skojarzenia na powyższym diagramie. Należy pamiętać, że nazwa i skojarzenie dla każdego zestawu skojarzeń są definiowane przy użyciu atrybutów XML.
<EntityContainer Name="BooksContainer" >
<EntitySet Name="Books" EntityType="BooksModel.Book" />
<EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
<EntitySet Name="Authors" EntityType="BooksModel.Author" />
<AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
<End Role="Book" EntitySet="Books" />
<End Role="Publisher" EntitySet="Publishers" />
</AssociationSet>
<AssociationSet Name="WrittenBy" Association="BooksModel.WrittenBy">
<End Role="Book" EntitySet="Books" />
<End Role="Author" EntitySet="Authors" />
</AssociationSet>
</EntityContainer>
Istnieje możliwość zdefiniowania wielu zestawów skojarzeń na skojarzenie, o ile nie ma dwóch zestawów skojarzeń, które współużytkują koniec zestawu skojarzeń. Poniższy plik CSDL definiuje kontener jednostki z dwoma zestawami skojarzeń dla skojarzenia WrittenBy
. Zwróć uwagę, że zdefiniowano wiele zestawów jednostek dla typów jednostek Book
i Author
, i że żaden zestaw skojarzeń nie dzieli końca z innym zestawem skojarzeń.
<EntityContainer Name="BooksContainer" >
<EntitySet Name="Books" EntityType="BooksModel.Book" />
<EntitySet Name="FictionBooks" EntityType="BooksModel.Book" />
<EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
<EntitySet Name="Authors" EntityType="BooksModel.Author" />
<EntitySet Name="FictionAuthors" EntityType="BooksModel.Author" />
<AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
<End Role="Book" EntitySet="Books" />
<End Role="Publisher" EntitySet="Publishers" />
</AssociationSet>
<AssociationSet Name="WrittenBy" Association="BooksModel.WrittenBy">
<End Role="Book" EntitySet="Books" />
<End Role="Author" EntitySet="Authors" />
</AssociationSet>
<AssociationSet Name="FictionWrittenBy" Association="BooksModel.WrittenBy">
<End Role="Book" EntitySet="FictionBooks" />
<End Role="Author" EntitySet="FictionAuthors" />
</AssociationSet>
</EntityContainer>