Udostępnij za pośrednictwem


ograniczenie integralności referencyjnej

Ograniczenie integralności referencyjnej w modelu danych jednostki (EDM) jest podobne do ograniczenia integralności referencyjnej w relacyjnej bazie danych. W taki sam sposób, w jaki kolumna (lub kolumny) z tabeli bazy danych może odwoływać się do klucza podstawowego innej tabeli, właściwość (lub właściwości) typu jednostki może odwoływać się do klucza jednostki innego typu. Typ jednostki, do którego odwołuje się odwołanie, jest nazywany głównym końcem ograniczenia. Typ jednostki odwołujący się do głównego końca jest nazywany zależnym końcem ograniczenia.

Ograniczenie więzów integralności jest definiowane jako część skojarzenia między dwoma typami jednostek. Definicja ograniczenia więzów integralności określa następujące informacje:

  • Główny koniec ograniczenia. (Typ jednostki, do którego odwołuje się klucz jednostki, do którego odwołuje się zależny koniec).

  • Klucz jednostki końca podmiotu.

  • Zależny koniec ograniczenia. (Typ jednostki, który ma właściwość lub właściwości odwołujące się do klucza jednostki końca podmiotu).

  • Właściwość lub właściwości odwołujące się do zależnego końca.

Celem ograniczeń integralności referencyjnej w programie EDM jest zapewnienie, że prawidłowe skojarzenia zawsze istnieją. Aby uzyskać więcej informacji, zobacz właściwość klucza obcego.

Przykład

Na poniższym diagramie przedstawiono model koncepcyjny z dwoma skojarzeniami: WrittenBy i PublishedBy. Typ Book jednostki ma właściwość , PublisherIdktóra odwołuje się do klucza Publisher jednostki typu jednostki podczas definiowania ograniczenia integralności referencyjnej w skojarzeniu PublishedBy .

RefConstraintModel

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 ograniczenie integralności referencyjnej PublishedBy dla skojarzenia pokazanego w powyższym modelu koncepcyjnym.

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

Zobacz też