Поделиться через


Схема хранения Northwind (модель EDM)

Метаданные описывают структуру базы данных, используемой приложением, построенным на модели Entity Data Model (EDM). Метаданные определены на языке SSDL. Следующая схема представляет собой полную спецификацию метаданных для таблицы базы данных, которая содержит экземпляры сущностей и ассоциации, определенные в Концептуальная схема Northwind (модель EDM).

Схема начинается со спецификации пространства имен arget: NorthwindLib.Target. Значение Namespace используется для идентификации метаданных в спецификации сопоставления. Следующий за именем Namespace тег <EntityContainer> задает имя контейнера, описываемого метаданными. В этом случае объекту базы данных назначается имя dbo, соответствующее имени идентификатора раздела в базе данных Northwind.

Каждый из типов сущностей и наборов сущностей, определенных ранее в схеме на языке CSDL, имеет спецификации EntityType и EntitySet в схеме на языке SSDL. Декларации на языке SSDL описывают существовавшие прежде таблицы, принятые в проектных спецификациях языка CSDL для сущностей и ассоциаций. В схеме на языке SSDL наборы сущностей представляют таблицы базы данных. Экземпляры типов сущностей представлены строками в таблице. Свойства типов сущностей соответствуют столбцам в таблицах. Свойства Key типов языка SSDL соответствуют столбцам первичного ключа строк в таблицах базы данных.

В следующей схеме определены метаданные хранилища в пространстве имен 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
Спецификация схем и сопоставлений (платформа Entity Framework)