Northwind 存储架构 (EDM)

元数据描述了在 实体数据模型 (EDM) 上生成的应用程序所使用的数据库的结构。元数据在存储架构定义语言 (SSDL) 中定义。以下架构是一些数据库表的完整元数据规范,这些数据库表包含 Northwind 概念架构 (EDM) 中定义的实体和关联的实例。

该架构的开头部分是 target 命名空间的规范:NorthwindLib.Target.此 Namespace 用于标识映射规范中的元数据。在 Namespace 名称后面,<EntityContainer> 标记指定了元数据所描述的容器的名称。在本示例中,数据库对象名为 dbo,它对应于 Northwind 数据库中的分区标识符的名称。

先前在概念性架构定义语言 (CSDL) 架构中定义的每个实体类型和实体集都在 SSDL 架构中具有 EntityTypeEntitySet 规范。SSDL 声明描述了 CSDL 在其实体和关联设计规范中改写的预先存在的表。在 SSDL 架构中,实体集表示数据库中的表。实体类型的实例由表中的行表示。实体类型的属性对应于表中的列。SSDL 类型的 Key 属性对应于数据库表中的行的主键列。

以下架构定义 NorthwindLib.Target 命名空间中的存储元数据。

<?xml version="1.0" encoding="utf-8"?>
<Schema xmlns:edm="https://schemas.microsoft.com/ado/2006/04/edm/ssdl" 
             xmlns="https://schemas.microsoft.com/ado/2006/04/edm/ssdl"
             Provider="System.Data.SqlClient"
             ProviderManifestToken="2005"
             Namespace="NorthwindLib.Target" Alias="Self" >

  <EntityType Name="Product">
    <Key>
      <PropertyRef Name="ProductID" />
    </Key>
    <Property Name="ProductID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
    <Property Name="ProductName" Type="nvarchar" Nullable="false" MaxLength="40" />
    <Property Name="CategoryID" Type="int" Nullable="true" />
    <Property Name="UnitPrice" Type="decimal" Nullable="true" Precision="10" Scale="4" />
    <Property Name="Discontinued" Type="bit" Nullable="false" />
    <Property Name="UnitsInStock" Type="smallint" Nullable="true" />
  </EntityType>

  <EntityType Name="Category">
    <Key>
      <PropertyRef Name="CategoryID" />
    </Key>
    <Property Name="CategoryID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
    <Property Name="CategoryName" Type="nvarchar" Nullable="false" MaxLength="15" />
    <Property Name="Description" Type="nvarchar" Nullable="true" MaxLength="255" />
  </EntityType>

  <EntityType Name="Customer">
    <Key>
      <PropertyRef Name="CustomerID" />
    </Key>
    <Property Name="CustomerID" Type="nchar" Nullable="false" MaxLength="5" />
    <Property Name="CompanyName" Type="nvarchar" Nullable="false" MaxLength="40" />
    <Property Name="ContactName" Type="nvarchar" Nullable="true" MaxLength="30" />
    <Property Name="City" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="Country" Type="nvarchar" Nullable="true" MaxLength="15" />
  </EntityType>

  <EntityType Name="Order">
    <Key>
      <PropertyRef Name="OrderID" />
    </Key>
    <Property Name="OrderID" Type="int" Nullable="false" />
    <Property Name="CustomerID" Type="nchar" Nullable="true" MaxLength="5" />
    <Property Name="OrderDate" Type="datetime" Nullable="true" />
    <Property Name="ShipCity" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="ShipCountry" Type="nvarchar" Nullable="true" MaxLength="15" />
  </EntityType>

  <EntityContainer Name="dbo">
    <EntitySet Name="Categories" EntityType="Self.Category" Schema="dbo" Table="Categories" />
    <EntitySet Name="Products" EntityType="Self.Product" Schema="dbo" Table="Products" />
    <EntitySet Name="Customers" EntityType="Self.Customer" Schema="dbo" Table="Customers" />
    <EntitySet Name="Orders" EntityType="Self.Order" Schema="dbo" Table="Orders" />
  </EntityContainer>

</Schema>

另请参见

概念

Northwind 概念架构 (EDM)
Northwind 映射架构 (EDM)
生成 Northwind 对象模型 (EDM)
帮助器方法 (EDM)
使用 Northwind 对象模型 (EDM)

其他资源

EDM 规范
架构和映射规范(实体框架)