Northwind-Speicherschema (EDM)

In Metadaten wird die Struktur einer Datenbank beschrieben, die von einer auf dem Entitätsdatenmodell (EDM) beruhenden Anwendung verwendet wird. Metadaten werden in der Datenspeicherschema-Definitionssprache (Store Schema Definition Language, SSDL) definiert. Das folgende Schema stellt die vollständige Metadatenspezifikation für Datenbanktabellen dar, die Instanzen der in Konzeptionelles Schema für Northwind (EDM) definierten Entitäten und Zuordnungen enthalten.

Das Schema beginnt mit einer Spezifikation eines target-Namespaces: NorthwindLib.Target. Dieser Namespace wird verwendet, um die Metadaten in der Mappingspezifikation zu identifizieren. Dem Namespace-Namen folgend, gibt das <EntityContainer>-Tag einen Namen für den Container an, der in den Metadaten beschrieben wird. In diesem Fall erhält das Datenbankobjekt den Namen dbo, der dem Namen des Partitionsbezeichners****in der Northwind-Datenbank entspricht.

Jeder Entitätstyp und jede Entitätenmenge, die zuvor im CSDL-Schema definiert wurden, verfügen über EntityType-Spezifikationen und EntitySet-Spezifikationen im SSDL-Schema. Die SSDL-Deklarationen beschreiben die bereits vorhandenen Tabellen, die von der CSDL in ihren Entwurfsspezifikationen für Entitäten und Zuordnungen übernommen wurden. Im SSDL-Schema stellen Entitätenmengen Tabellen in der Datenbank dar. Instanzen von Entitätstypen werden durch Zeilen in einer Tabelle dargestellt. Die Eigenschaften von Entitätstypen entsprechen den Spalten in den Tabellen. Die Key-Eigenschaften von SSDL-Typen entsprechen Primärschlüsselspalten von Zeilen in Datenbanktabellen.

Das folgende Schema definiert die Speichermetadaten im NorthwindLib.Target-Namespace.

<?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>

Siehe auch

Konzepte

Konzeptionelles Schema für Northwind (EDM)
Northwind-Mappingschema (EDM)
Erstellen des Northwind-Objektmodells (EDM)
Hilfsmethoden (EDM)
Verwenden des Northwind-Objektmodells (EDM)

Weitere Ressourcen

EDM-Spezifikationen
Schemas und Mappingspezifikation (Entity Framework)