Udostępnij za pośrednictwem


zestaw skojarzeń

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 magazynu (takiego jak środowisko uruchomieniowe języka wspólnego lub baza danych programu SQL Server) w celu grupowania wystąpień skojarzeń, aby można je było mapować na magazyn danych.

Zestaw skojarzeń jest definiowany w kontenerze jednostki, który jest logicznym grupowaniem zestawówjednostek i zestawów skojarzeń.

Definicja zestawu skojarzeń zawiera następujące informacje:

  • Nazwa zestawu skojarzeń. (Wymagane)

  • Skojarzenie, którego będzie zawierać wystąpienia. (Wymagane)

  • Kończy się dwa zestawy skojarzeń.

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.

Example model with three entity types

W poniższym przykładzie przedstawiono zestaw skojarzeń (PublishedBy) i dwa zestawy jednostek (Books i Publishers) na podstawie przedstawionego powyżej modelu koncepcyjnego. Analiza bi w Books zestawie jednostek reprezentuje wystąpienie Book typu jednostki w czasie wykonywania. Podobnie Pj reprezentuje Publisher wystąpienie w Publishers zestawie jednostek. BiPj reprezentuje wystąpienie skojarzenia PublishedBy w PublishedBy zestawie skojarzeń.

Screenshot that shows a Sets example.

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 dla typów jednostek i Author zdefiniowano Book wiele zestawów jednostek i i że żaden zestaw skojarzeń nie udostępnia końca zestawu 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>

Zobacz też