Condividi tramite


Schema dei metadati di archiviazione (SSDL)

Lo schema dei metadati di archiviazione è una descrizione formale del database che rende persistenti i dati per un'applicazione compilata in base a Entity Data Model (EDM). Le entità e le associazioni dichiarate in questo schema costituiscono la base per il mapping delle entità e delle associazioni nello schema concettuale alle entità corrispondenti nel modello di archiviazione.

Un'entità dichiarata in SSDL (Store Schema Definition Language) è molto simile a un'entità in CSDL (Conceptual Schema Definition Language). La differenza consiste principalmente nei tipi di dati utilizzati nelle dichiarazioni SSDL. I tipi di dati delle proprietà dichiarate nei file SSDL sono quelli del modello di archiviazione. I tipi di dati nei file CSDL sono tipi semplici definiti da EDM. Il mapping tra questi tipi è una delle funzioni di EDM. Per ulteriori informazioni sui tipi di dati utilizzati in CSDL e in SSDL, vedere Tipi semplici (EDM).

Metadati e mapping

Il nome dello spazio dei nomi e il contenitore di entità dichiarati nello schema SSDL sono i metadati utilizzati dalla specifica di mapping per connettere le tabelle nell'archivio alle entità nello schema CSDL.

NoteNota

Gli spazi dei nomi SSDL sono diversi dagli spazi dei nomi XML. Gli spazi dei nomi SSDL vengono utilizzati per qualificare in modo completo i nomi dei tipi di entità e delle associazioni. Quando, ad esempio, in MSL (Mapping Specification Language) viene fatto riferimento ai tipi di entità, deve essere fornito il nome completo. SSDL è incluso nello spazio dei nomi XML https://schemas.microsoft.com/ado/2006/04/edm/ssdl. I due tipi di spazi dei nomi sono separati e distinti e non devono essere confusi.

Le righe seguenti nello schema SSDL Human Resources dichiarano uno spazio dei nomi per i metadati contenuti da questo schema. Il nome dello spazio dei nomi verrà utilizzato da MSL (Mapping Specification Language).

<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRTarget"
        Alias="Self"
        xmlns="https://schemas.microsoft.com/ado/2006/04/edm/ssdl">

Lo schema SSDL include un elemento EntityContainer che verrà utilizzato anche dalla specifica di mapping. Il segmento SSDL seguente illustra la dichiarazione del contenitore di entità .

  <EntityContainer Name="HumanResources">
    <EntitySet Name="Department" EntityType="Self.Department" />
    <EntitySet Name="Employee" EntityType="Self.Employee" />
    <EntitySet Name="EmployeeAddress" EntityType="Self.EmployeeAddress" />
    <EntitySet Name="EmployeeDepartmentHistory"
                      EntityType="Self.EmployeeDepartmentHistory" />
    <EntitySet Name="EmployeePayHistory"
                             EntityType="Self.EmployeePayHistory" />
    <EntitySet Name="JobCandidate" EntityType="Self.JobCandidate" />
    <EntitySet Name="Shift" EntityType="Self.Shift" />
    <AssociationSet Name="FK_Employee_Employee_ManagerID"
                  Association="Self.FK_Employee_Employee_ManagerID">
      <End Role="Employee" EntitySet="Employee" />
      <End Role="Employee63" EntitySet="Employee" />
    </AssociationSet>
    <AssociationSet Name="FK_JobCandidate_Employee_EmployeeID" 
            Association="Self.FK_JobCandidate_Employee_EmployeeID">
      <End Role="Employee" EntitySet="Employee" />
      <End Role="JobCandidate" EntitySet="JobCandidate" />
    </AssociationSet>
  </EntityContainer>

Le entità e le associazioni nei metadati SSDL specificano tabelle e colonne nel modello di archiviazione. Questi metadati sono necessari per l'esecuzione del mapping tra le entità nello schema CSDL e quelle nell'archivio.

Gli elementi EntityContainer nello schema concettuale e nello schema di archiviazione sono indipendenti dall'elemento Schema anche se sono contenuti nell'elemento Schema. L'elemento EntityContainerMapping in MSL esegue il mapping dell'oggetto EntityContainer del file SSDL a un oggetto EntityContainer nel file CSDL senza riferimenti ai nomi dello spazio dei nomi dichiarati in ogni schema: edm:CdmEntityContainer="HumanResources"``edm:StorageEntityContainer="HumanResources".

L'intestazione MSL seguente illustra il mapping tra il contenitore di entità HumanResources nello schema concettuale, definito come CdmEntityContainer, e i metadati di archiviazione, definiti come StorageEntityContainer.

<?xml version="1.0" encoding="utf-8"?>
<Mapping edm:Space="C-S" 
    xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
  < EntityContainerMapping
                  CdmEntityContainer="HumanResources"
                  StorageEntityContainer="HumanResources">

La sintassi SSDL utilizzata negli esempi in questo argomento è descritta in modo più completo negli argomenti seguenti:

Elemento Schema (SSDL)

Attributo Namespace (SSDL)

Elemento EntityType (SSDL)

Elemento Association (SSDL)

Elemento EntityContainer (SSDL)

Vedere anche

Concetti

Tipi EDM (Entity Data Model)
Modello completo di AdventureWorks (EDM)