Dela via


begränsning av referensintegritet

En referensintegritetsbegränsning i entitetsdatamodellen (EDM) liknar en referensintegritetsbegränsning i en relationsdatabas. På samma sätt som en kolumn (eller kolumner) från en databastabell kan referera till den primära nyckeln i en annan tabell kan en egenskap (eller egenskaper) av en entitetstyp referera till entitetsnyckeln för en annan entitetstyp. Den entitetstyp som refereras kallas för begränsningens huvudslut . Entitetstypen som refererar till huvudslutet kallas för villkorets beroende slut .

En begränsning för referensintegritet definieras som en del av en association mellan två entitetstyper. Definitionen för en referensintegritetsbegränsning anger följande information:

  • Begränsningens huvudslut. (En entitetstyp vars entitetsnyckel refereras till av den beroende änden.)

  • Entitetsnyckeln för huvudslutet.

  • Villkorets beroende slut. (En entitetstyp som har en egenskap eller egenskaper som refererar till entitetsnyckeln för huvudslutet.)

  • Referensegenskapen eller egenskaperna för den beroende änden.

Syftet med referensintegritetsbegränsningar i EDM är att säkerställa att giltiga associationer alltid finns. Mer information finns i egenskapen sekundärnyckel.

Exempel

Diagrammet nedan visar en konceptmodell med två associationer: WrittenBy och PublishedBy. Entitetstypen Book har en egenskap, PublisherId, som refererar till entitetsnyckeln för Publisher entitetstypen när du definierar en referensintegritetsbegränsning för associationen PublishedBy .

RefConstraintModel

ADO.NET Entity Framework använder ett domänspecifikt språk (DSL) som kallas CSDL (Conceptual Schema Definition Language) för att definiera konceptuella modeller. Följande CSDL definierar en referensintegritetsbegränsning för associationen PublishedBy som visas i konceptmodellen ovan.

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

Se även