Sdílet prostřednictvím


association set

Sada přidružení je logický kontejner pro instance přidružení stejného typu. Sada přidružení není konstruktor modelování dat; to znamená, že nepopisuje strukturu dat nebo relací. Sada přidružení místo toho poskytuje konstruktor pro hostování nebo prostředí úložiště (například modul CLR nebo databázi SQL Serveru) pro seskupení instancí přidružení, aby bylo možné je namapovat na úložiště dat.

Sada přidružení je definována v kontejneru entity, což je logické seskupení sad entit a sad přidružení.

Definice sady přidružení obsahuje následující informace:

  • Název sady přidružení. (Povinné)

  • Přidružení, jehož přidružení bude obsahovat instance. (Povinné)

  • Dvě sady přidružení končí.

Příklad

Následující diagram znázorňuje koncepční model se dvěma přidruženími: PublishedBya WrittenBy. I když se v diagramu nezobrazují informace o sadách přidružení, další diagram ukazuje příklad sad přidružení a sad entit založených na tomto modelu.

Example model with three entity types

Následující příklad ukazuje sadu přidružení (PublishedBy) a dvě sady entit (Books a Publishers) na základě konceptuálního modelu uvedeného výše. Bi v Books sadě entit představuje instanci Book typu entity za běhu. Podobně Pj představuje Publisher instanci v Publishers sadě entit. BiPj představuje instanci PublishedBy přidružení v PublishedBy sadě přidružení.

Screenshot that shows a Sets example.

ADO.NET Entity Framework používá jazyk specifický pro doménu (DSL) označovaný jako jazyk CSDL (Conceptual Schema Definition Language) k definování konceptuálních modelů. Následující CSDL definuje kontejner entit s jednou sadou přidružení pro každé přidružení v diagramu výše. Všimněte si, že název a přidružení pro každou sadu přidružení jsou definovány pomocí atributů 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>

Je možné definovat více sad přidružení na přidružení, pokud žádné dvě sady přidružení sdílejí konec sady přidružení. Následující CSDL definuje kontejner entit se dvěma sadami přidružení pro WrittenBy přidružení. Všimněte si, že pro typy entit byla definována Book více sad entit a Author že žádná sada přidružení nesdílí konec sady přidružení.

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

Viz také