referential integrity constraint
Varlık Veri Modeli'ndeki (EDM) bilgi tutarlılığı kısıtlaması, ilişkisel veritabanındaki bilgi tutarlılığı kısıtlamasına benzer. Veritabanı tablosundaki bir sütunun (veya sütunların) başka bir tablonun birincil anahtarına başvurabilmesiyle aynı şekilde, varlık türündeki bir özellik (veya özellikler) başka bir varlık türünün varlık anahtarına başvurabilir. Başvurulan varlık türü, kısıtlamanın asıl sonu olarak adlandırılır. Asıl uca başvuran varlık türü, kısıtlamanın bağımlı sonu olarak adlandırılır.
Bilgi tutarlılığı kısıtlaması, iki varlık türü arasındaki ilişkilendirmenin bir parçası olarak tanımlanır. Bilgi tutarlılığı kısıtlamasının tanımı aşağıdaki bilgileri belirtir:
Kısıtlamanın asıl sonu. (Varlık anahtarına bağımlı uç tarafından başvurulan bir varlık türü.)
Asıl ucun varlık anahtarı.
Kısıtlamanın bağımlı sonu. (Asıl ucun varlık anahtarına başvuran özelliği veya özellikleri olan varlık türü.)
Bağımlı ucun başvuran özelliği veya özellikleri.
EDM'deki bilgi tutarlılığı kısıtlamalarının amacı, geçerli ilişkilendirmelerin her zaman mevcut olduğundan emin olmaktır. Daha fazla bilgi için bkz . yabancı anahtar özelliği.
Örnek
Aşağıdaki diyagramda iki ilişkilendirmeye sahip kavramsal bir model gösterilmektedir: WrittenBy
ve PublishedBy
. Varlık Book
türü, PublisherId
ilişkilendirmede bilgi tutarlılığı kısıtlaması tanımladığınızda varlık türünün varlık anahtarına Publisher
başvuran bir özelliğine PublishedBy
sahiptir.
ADO.NET Entity Framework, kavramsal modelleri tanımlamak için kavramsal şema tanım dili (CSDL) olarak adlandırılan etki alanına özgü bir dil (DSL) kullanır. Aşağıdaki CSDL, yukarıdaki kavramsal modelde gösterilen ilişkilendirme üzerinde PublishedBy
bir bilgi tutarlılığı kısıtlaması tanımlar.
<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>