對應規格會將概念型別連接到目標資料庫中的對應儲存結構。 對應語法稱為對應規格語言 (MSL)。 MSL 檔案具有 .msl 副檔名。 如需對應的詳細資訊,請參閱對應規格 (MSL)。
MSL 檔案中的 <EntityContainerMapping> 標記會將概念結構定義語言 (CSDL) 結構描述中的 EntityContainer 對應到資料庫物件中的 StorageEntityContainer。 同樣地,<EntitySetMapping> 和 <EntityTypeMapping> 標記會將 MSL 結構描述中的實體集和實體類型對應到目標資料庫中的對應結構。
附註 |
|---|
在 XML 階層中,EntityContainer 項目與 Schema 項目分開,即使 EntityContainer 定義在結構描述內亦然。 在對應檔中,EntityContainer 的名稱不包含結構描述命名空間名稱。 使用結構描述命名空間名稱所限定的實體容器名稱會造成對應例外狀況。 |
Northwind MSL 檔案的完整內容顯示於以下範例中。
<?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>
如需結構描述和對應的詳細資訊,請參閱結構描述和對應規格 (Entity Framework)。
如需定義實體和關聯的詳細資訊,請參閱實作實體 (EDM)。
另請參閱
概念
Entity Data Model 類型
Entity Data Model 關聯性
附註