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.
Nota |
---|
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 |
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 EntityContainer (SSDL)
Vedere anche
Concetti
Tipi EDM (Entity Data Model)
Modello completo di AdventureWorks (EDM)