Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le specifiche di mapping connettono i tipi concettuali alle strutture di archiviazione corrispondenti in un database di destinazione. La sintassi di mapping è detta Mapping Specification Language (MSL). I file MSL hanno estensione msl. Per ulteriori informazioni sul mapping, vedere Specifica di mapping (MSL).
Il tag <EntityContainerMapping> in un file MSL mappa l'oggetto EntityContainer dello schema CSDL (Conceptual Schema Definition Language) all'oggetto StorageEntityContainer in un oggetto di database. Analogamente, i tag <EntitySetMapping> e <EntityTypeMapping> mappano i set di entità e i tipi dello schema MSL alle strutture corrispondenti nel database di destinazione.
Nota |
|---|
Nella gerarchia XML l'elemento EntityContainer è distinto dall'elemento Schema anche se EntityContainer è definito nello schema. Il nome di EntityContainer non include il nome dello spazio dei nomi dello schema nel file di mapping. L'utilizzo di un nome di contenitore di entità qualificato dal nome di spazio dei nomi dello schema provoca un'eccezione di mapping. |
Il contenuto completo del file MSL di Northwind è illustrato nell'esempio seguente.
<?xml version="1.0" encoding="utf-8"?>
<Mapping xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS"
xmlns:edm="urn:schemas-microsoft-com:windows:storage:mapping:CS"
Space="C-S">
<EntityContainerMapping CdmEntityContainer="Northwind" StorageEntityContainer="dbo">
<EntitySetMapping Name="Categories">
<EntityTypeMapping TypeName="NorthwindLib.Category">
<MappingFragment StoreEntitySet="Categories">
<ScalarProperty Name="CategoryID" ColumnName="CategoryID" />
<ScalarProperty Name="CategoryName" ColumnName="CategoryName" />
<ScalarProperty Name="Description" ColumnName="Description" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="Products">
<EntityTypeMapping TypeName="NorthwindLib.Product">
<MappingFragment StoreEntitySet="Products">
<ScalarProperty Name="ProductID" ColumnName="ProductID" />
<ScalarProperty Name="ProductName" ColumnName="ProductName" />
<!--<ScalarProperty edm:Name="CategoryID"
edm:ColumnName="CategoryID" />-->
<ScalarProperty Name="UnitPrice" ColumnName="UnitPrice" />
<Condition ColumnName="Discontinued" Value="false" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="NorthwindLib.DiscontinuedProduct">
<MappingFragment StoreEntitySet="Products">
<ScalarProperty Name="ProductID" ColumnName="ProductID" />
<ScalarProperty Name="ProductName" ColumnName="ProductName" />
<!--<ScalarProperty edm:Name="CategoryID"
edm:ColumnName="CategoryID" />-->
<ScalarProperty Name="UnitPrice" ColumnName="UnitPrice" />
<ScalarProperty Name="UnitsInStock" ColumnName="UnitsInStock" />
<Condition ColumnName="Discontinued" Value="true" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="Customers">
<EntityTypeMapping TypeName="NorthwindLib.Customer">
<MappingFragment StoreEntitySet="Customers">
<ScalarProperty Name="CustomerID" ColumnName="CustomerID" />
<ScalarProperty Name="CompanyName" ColumnName="CompanyName" />
<ScalarProperty Name="ContactName" ColumnName="ContactName" />
<ScalarProperty Name="City" ColumnName="City" />
<ScalarProperty Name="Country" ColumnName="Country" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="SalesOrders">
<EntityTypeMapping TypeName="NorthwindLib.SalesOrder">
<MappingFragment StoreEntitySet="Orders">
<ScalarProperty Name="OrderID" ColumnName="OrderID" />
<!--<ScalarProperty edm:Name="CustomerID"
edm:ColumnName="CustomerID" /> -->
<ScalarProperty Name="OrderDate" ColumnName="OrderDate" />
<ScalarProperty Name="ShipCity" ColumnName="ShipCity" />
<ScalarProperty Name="ShipCountry" ColumnName="ShipCountry" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
<AssociationSetMapping Name="CustomerOrders" TypeName="NorthwindLib.Customer_Order"
StoreEntitySet="Orders">
<EndProperty Name="Customer">
<ScalarProperty Name="CustomerID" ColumnName="CustomerID" />
</EndProperty>
<EndProperty Name="SalesOrder">
<ScalarProperty Name="OrderID" ColumnName="OrderID" />
</EndProperty>
</AssociationSetMapping>
<AssociationSetMapping Name="CategoryProducts" TypeName="NorthwindLib.Category_Product"
StoreEntitySet="Products">
<EndProperty Name="Category">
<ScalarProperty Name="CategoryID" ColumnName="CategoryID" />
</EndProperty>
<EndProperty Name="Product">
<ScalarProperty Name="ProductID" ColumnName="ProductID" />
</EndProperty>
</AssociationSetMapping>
</EntityContainerMapping>
</Mapping>
Per ulteriori informazioni sugli schemi e sul mapping, vedere Specifica di schemi e mapping (Entity Framework).
Per ulteriori informazioni sulla definizione di entità e associazioni, vedere Implementazione di entità (EDM).
Implementazione delle associazioni (EDM).
Vedere anche
Concetti
Tipi EDM (Entity Data Model)
Relazioni in Entity Data Model
Nota