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ść , PublisherId
która odwołuje się do klucza Publisher
jednostki typu jednostki podczas definiowania ograniczenia integralności referencyjnej w skojarzeniu PublishedBy
.
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>