SSDL-SpezifikationSSDL Specification

Die Datenspeicherschema-Definitionssprache (Store Schema Definition Language, SSDL) ist eine XML-basierte Sprache, die das Speichermodell einer Entity Framework-Anwendung beschreibt.Store schema definition language (SSDL) is an XML-based language that describes the storage model of an Entity Framework application.

In einer Entity Framework Anwendung werden die Metadaten des Speicher Modells aus einer SSDL-Datei (geschrieben in SSDL) in eine Instanz der System. Data. Metadata. Edm. StoreItemCollection geladen und können mithilfe von Methoden in der System. Data. Metadata. Edm. MetadataWorkspace-Klasse aufgerufen werden.In an Entity Framework application, storage model metadata is loaded from a .ssdl file (written in SSDL) into an instance of the System.Data.Metadata.Edm.StoreItemCollection and is accessible by using methods in the System.Data.Metadata.Edm.MetadataWorkspace class. Entity Framework verwendet Metadaten des Speicher Modells, um Abfragen für das konzeptionelle Modell in Speicher spezifische Befehle zu übersetzen.Entity Framework uses storage model metadata to translate queries against the conceptual model to store-specific commands.

Der Entity Framework Designer (EF-Designer) speichert Speichermodell Informationen in einer EDMX-Datei zur Entwurfszeit.The Entity Framework Designer (EF Designer) stores storage model information in an .edmx file at design time. Zum Zeitpunkt der Erstellung verwendet der Entity Designer Informationen in einer EDMX-Datei, um die SSDL-Datei zu erstellen, die zur Laufzeit von Entity Framework benötigt wird.At build time the Entity Designer uses information in an .edmx file to create the .ssdl file that is needed by Entity Framework at runtime.

Die verschiedenen Versionen von SSDL werden durch XML-Namespaces unterschieden.Versions of SSDL are differentiated by XML namespaces.

SSDL-VersionSSDL Version XML-NamespaceXML Namespace
SSDL v1SSDL v1 https://schemas.microsoft.com/ado/2006/04/edm/ssdl
SSDL v2SSDL v2 https://schemas.microsoft.com/ado/2009/02/edm/ssdl
SSDL v3SSDL v3 https://schemas.microsoft.com/ado/2009/11/edm/ssdl

Zuordnungselement (SSDL)Association Element (SSDL)

Ein Association -Element in der Datenspeicher Schema-Definitions Sprache (SSDL) gibt Tabellen Spalten an, die an einer FOREIGN KEY-Einschränkung in der zugrunde liegenden Datenbank beteiligt sind.An Association element in store schema definition language (SSDL) specifies table columns that participate in a foreign key constraint in the underlying database. Zwei erforderliche untergeordnete End-Elemente geben die Tabellen an den Enden der Zuordnung und die Multiplizität an jedem Ende an.Two required child End elements specify tables at the ends of the association and the multiplicity at each end. Ein optionales ReferentialConstraint-Element gibt die Prinzipal- und die abhängigen Enden der Zuordnung sowie die teilnehmenden Spalten an.An optional ReferentialConstraint element specifies the principal and dependent ends of the association as well as the participating columns. Wenn kein referentialeinschränkungselement vorhanden ist, muss ein AssociationSetMapping-Element verwendet werden, um die Spalten Zuordnungen für die Zuordnung anzugeben.If no ReferentialConstraint element is present, an AssociationSetMapping element must be used to specify the column mappings for the association.

Das Association -Element kann die folgenden untergeordneten Elemente aufweisen (in der angegebenen Reihenfolge):The Association element can have the following child elements (in the order listed):

  • Dokumentation (kein (null) oder ein Element)Documentation (zero or one)
  • End (genau zwei Elemente)End (exactly two)
  • ReferentialConstraint (kein (null) oder ein Element)ReferentialConstraint (zero or one)
  • Anmerkungselemente (kein (null) oder mehrere Elemente)Annotation elements (zero or more)

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das Association -Element angewendet werden können.The following table describes the attributes that can be applied to the Association element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
NameName JaYes Der Name der entsprechenden Fremdschlüsseleinschränkung in der zugrunde liegenden Datenbank.The name of the corresponding foreign key constraint in the underlying database.

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das Association -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the Association element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein Association -Element, das ein referentialeinschränkungs -Element verwendet, um die Spalten anzugeben, die an der FOREIGN KEY-Einschränkung von FK _ CustomerOrders beteiligt sind:The following example shows an Association element that uses a ReferentialConstraint element to specify the columns that participate in the FK_CustomerOrders foreign key constraint:

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

AssociationSet-Element (SSDL)AssociationSet Element (SSDL)

Das AssociationSet -Element in der Datenspeicher Schema-Definitions Sprache (SSDL) stellt eine FOREIGN KEY-Einschränkung zwischen zwei Tabellen in der zugrunde liegenden Datenbank dar.The AssociationSet element in store schema definition language (SSDL) represents a foreign key constraint between two tables in the underlying database. Die Tabellenspalten, die an der Fremdschlüsseleinschränkung teilnehmen, werden in einem Association-Element angegeben.The table columns that participate in the foreign key constraint are specified in an Association element. Das Association -Element, das einem bestimmten AssociationSet -Element entspricht, wird im Association -Attribut des AssociationSet -Elements angegeben.The Association element that corresponds to a given AssociationSet element is specified in the Association attribute of the AssociationSet element.

SSDL-Zuordnungssätze werden CSDL-Zuordnungssätzen durch ein AssociationSetMapping-Element zugeordnet.SSDL association sets are mapped to CSDL association sets by an AssociationSetMapping element. Wenn jedoch die CSDL-Zuordnung für einen bestimmten CSDL-Zuordnungs Satz mithilfe eines referentialeinschränkung-Elements definiert wird, ist kein entsprechendes AssociationSetMapping -Element erforderlich.However, if the CSDL association for a given CSDL association set is defined by using a ReferentialConstraint element , no corresponding AssociationSetMapping element is necessary. Wenn in diesem Fall ein AssociationSetMapping -Element vorhanden ist, werden die von ihm definierten Zuordnungen durch das referentialeinschränkung -Element überschrieben.In this case, if an AssociationSetMapping element is present, the mappings it defines will be overridden by the ReferentialConstraint element.

Das AssociationSet -Element kann über die folgenden untergeordneten Elemente verfügen (in der angegebenen Reihenfolge):The AssociationSet element can have the following child elements (in the order listed):

  • Dokumentation (kein (null) oder ein Element)Documentation (zero or one)
  • End (kein (null) oder zwei Elemente)End (zero or two)
  • Anmerkungselemente (kein (null) oder mehrere Elemente)Annotation elements (zero or more)

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das AssociationSet -Element angewendet werden können.The following table describes the attributes that can be applied to the AssociationSet element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
NameName JaYes Der Name der Fremdschlüsseleinschränkung, die der Zuordnungssatz darstellt.The name of the foreign key constraint that the association set represents.
ZuordnungAssociation JaYes Der Name der Zuordnung, die die Spalten definiert, die an der Fremdschlüsseleinschränkung teilnehmen.The name of the association that defines the columns that participate in the foreign key constraint.

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das AssociationSet -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the AssociationSet element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein AssociationSet -Element, das die FK_CustomerOrders Foreign Key-Einschränkung in der zugrunde liegenden Datenbank darstellt:The following example shows an AssociationSet element that represents the FK_CustomerOrders foreign key constraint in the underlying database:

 <AssociationSet Name="FK_CustomerOrders"
                 Association="ExampleModel.Store.FK_CustomerOrders">
   <End Role="Customers" EntitySet="Customers" />
   <End Role="Orders" EntitySet="Orders" />
 </AssociationSet>

CollectionType-Element (SSDL)CollectionType Element (SSDL)

Das CollectionType -Element in der Speicher Schema-Definitions Sprache (SSDL) gibt an, dass der Rückgabetyp einer Funktion eine Auflistung ist.The CollectionType element in store schema definition language (SSDL) specifies that a function’s return type is a collection. Das CollectionType -Element ist ein untergeordnetes Element des ReturnType-Elements.The CollectionType element is a child of the ReturnType element. Der Sammlungstyp wird mithilfe des untergeordneten RowType-Elements angegeben:The type of collection is specified by using the RowType child element:

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das CollectionType -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the CollectionType element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt eine Funktion, die ein CollectionType -Element verwendet, um anzugeben, dass die Funktion eine Auflistung von Zeilen zurückgibt.The following example shows a function that uses a CollectionType element to specify that the function returns a collection of rows.

   <Function Name="GetProducts" IsComposable="true" Schema="dbo">
     <ReturnType>
       <CollectionType>
         <RowType>
           <Property Name="ProductID" Type="int" Nullable="false" />
           <Property Name="CategoryID" Type="bigint" Nullable="false" />
           <Property Name="ProductName" Type="nvarchar" MaxLength="40" Nullable="false" />
           <Property Name="UnitPrice" Type="money" />
           <Property Name="Discontinued" Type="bit" />
         </RowType>
       </CollectionType>
     </ReturnType>
   </Function>

CommandText-Element (SSDL)CommandText Element (SSDL)

Das CommandText -Element in der Datenspeicher Schema-Definitions Sprache (SSDL) ist ein untergeordnetes Element des Function-Elements, mit dem Sie eine SQL-Anweisung definieren können, die in der Datenbank ausgeführt wird.The CommandText element in store schema definition language (SSDL) is a child of the Function element that allows you to define a SQL statement that is executed at the database. Mit dem CommandText -Element können Sie Funktionen hinzufügen, die einer gespeicherten Prozedur in der-Datenbank ähneln, aber Sie definieren das CommandText -Element im Speichermodell.The CommandText element allows you to add functionality that is similar to a stored procedure in the database, but you define the CommandText element in the storage model.

Das CommandText -Element darf keine untergeordneten Elemente aufweisen.The CommandText element cannot have child elements. Der Text des CommandText -Elements muss eine gültige SQL-Anweisung für die zugrunde liegende Datenbank sein.The body of the CommandText element must be a valid SQL statement for the underlying database.

Für das CommandText -Element sind keine Attribute anwendbar.No attributes are applicable to the CommandText element.

BeispielExample

Das folgende Beispiel zeigt ein Function -Element mit einem untergeordneten CommandText -Element.The following example shows a Function element with a child CommandText element. Machen Sie die Funktion updateproductinorder als Methode für ObjectContext verfügbar, indem Sie Sie in das konzeptionelle Modell importieren.Expose the UpdateProductInOrder function as a method on the ObjectContext by importing it into the conceptual model.  

 <Function Name="UpdateProductInOrder" IsComposable="false">
   <CommandText>
     UPDATE Orders
     SET ProductId = @productId
     WHERE OrderId = @orderId;
   </CommandText>
   <Parameter Name="productId"
              Mode="In"
              Type="int"/>
   <Parameter Name="orderId"
              Mode="In"
              Type="int"/>
 </Function>

DefiningQuery-Element (SSDL)DefiningQuery Element (SSDL)

Mit dem DefiningQuery -Element in der Datenspeicher Schema-Definitions Sprache (SSDL) können Sie eine SQL-Anweisung direkt in der zugrunde liegenden Datenbank ausführen.The DefiningQuery element in store schema definition language (SSDL) allows you to execute a SQL statement directly in the underlying database. Das DefiningQuery -Element wird häufig wie eine Daten Bank Sicht verwendet, aber die Sicht wird im Speichermodell anstelle der Datenbank definiert.The DefiningQuery element is commonly used like a database view, but the view is defined in the storage model instead of the database. Die in einem DefiningQuery -Element definierte Sicht kann mithilfe eines EntitySetMapping-Elements einem Entitätstyp im konzeptionellen Modell zugeordnet werden.The view defined in a DefiningQuery element can be mapped to an entity type in the conceptual model through an EntitySetMapping element. Diese Zuordnungen sind schreibgeschützt.These mappings are read-only.  

Die folgende SSDL-Syntax zeigt die Deklaration eines EntitySet , gefolgt vom DefiningQuery -Element, das eine Abfrage enthält, die zum Abrufen der Sicht verwendet wird.The following SSDL syntax shows the declaration of an EntitySet followed by the DefiningQuery element that contains a query used to retrieve the view.

 <Schema>
     <EntitySet Name="Tables" EntityType="Self.STable">
         <DefiningQuery>
           SELECT  TABLE_CATALOG,
                   'test' as TABLE_SCHEMA,
                   TABLE_NAME
           FROM    INFORMATION_SCHEMA.TABLES
         </DefiningQuery>
     </EntitySet>
 </Schema>

Sie können gespeicherte Prozeduren in der Entity Framework verwenden, um Szenarien mit Lese-/Schreibzugriff zu ermöglichen.You can use stored procedures in the Entity Framework to enable read-write scenarios over views.Sie können entweder eine Datenquellen Sicht oder eine Entity SQL Sicht als Basistabelle zum Abrufen von Daten und zur Änderungs Verarbeitung durch gespeicherte Prozeduren verwenden. You can use either a data source view or an Entity SQL view as the base table for retrieving data and for change processing by stored procedures.

Sie können das DefiningQuery -Element verwenden, um Microsoft SQL Server Compact 3,5-Ziel zu verwenden.You can use the DefiningQuery element to target Microsoft SQL Server Compact 3.5. Obwohl SQL Server Compact 3,5 keine gespeicherten Prozeduren unterstützt, können Sie eine ähnliche Funktionalität mit dem DefiningQuery -Element implementieren.Though SQL Server Compact 3.5 does not support stored procedures, you can implement similar functionality with the DefiningQuery element. Es kann auch beim Erstellen gespeicherter Prozeduren nützlich sein, um einen Konflikt zwischen den in der Programmiersprache und den in der Datenquelle verwendeten Datentypen zu lösen.Another place where it can be useful is in creating stored procedures to overcome a mismatch between the data types used in the programming language and those of the data source. Sie könnten eine DefiningQuery schreiben, die einen bestimmten Satz von Parametern annimmt, und dann eine gespeicherte Prozedur mit einem anderen Satz von Parametern aufrufen, z. b. eine gespeicherte Prozedur, die Daten löscht.You could write a DefiningQuery that takes a certain set of parameters and then calls a stored procedure with a different set of parameters, for example, a stored procedure that deletes data.

Abhängiges Element (SSDL)Dependent Element (SSDL)

Das abhängige Element in der Speicher Schema-Definitions Sprache (Store Schema Definition Language, SSDL) ist ein untergeordnetes Element des referentialeinschränkung-Elements, das das abhängige Ende einer FOREIGN KEY-Einschränkung definiert (auch referenzielle Einschränkung genannt).The Dependent element in store schema definition language (SSDL) is a child element to the ReferentialConstraint element that defines the dependent end of a foreign key constraint (also called a referential constraint). Das abhängige Element gibt die Spalte (oder Spalten) in einer Tabelle an, die auf eine Primärschlüssel Spalte (oder Spalten) verweisen.The Dependent element specifies the column (or columns) in a table that reference a primary key column (or columns). PropertyRef -Elemente geben an, auf welche Spalten verwiesen wird.PropertyRef elements specify which columns are referenced. Das Principal-Element gibt die Primärschlüssel Spalten an, auf die von Spalten verwiesen wird, die im abhängigen Element angegeben sind.The Principal element specifies the primary key columns that are referenced by columns that are specified in the Dependent element.

Das abhängige Element kann die folgenden untergeordneten Elemente aufweisen (in der angegebenen Reihenfolge):The Dependent element can have the following child elements (in the order listed):

  • PropertyRef (ein oder mehrere Elemente)PropertyRef (one or more)
  • Anmerkungselemente (kein (null) oder mehrere Elemente)Annotation elements (zero or more)

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das abhängige Element angewendet werden können.The following table describes the attributes that can be applied to the Dependent element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
RolleRole JaYes Der gleiche Wert wie das Role -Attribut (sofern verwendet) des entsprechenden End-Elements. andernfalls der Name der Tabelle, die die verweisende Spalte enthält.The same value as the Role attribute (if used) of the corresponding End element; otherwise, the name of the table that contains the referencing column.

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das abhängige Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the Dependent element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für CSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for CSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein Association-Element, das ein referentialeinschränkungs -Element verwendet, um die Spalten anzugeben, die an der FOREIGN KEY-Einschränkung von FK _ CustomerOrders beteiligt sind.The following example shows an Association element that uses a ReferentialConstraint element to specify the columns that participate in the FK_CustomerOrders foreign key constraint. Das abhängige Element gibt die CustomerID- Spalte der Order -Tabelle als abhängiges Ende der Einschränkung an.The Dependent element specifies the CustomerId column of the Order table as the dependent end of the constraint.

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

Documentation-Element (SSDL)Documentation Element (SSDL)

Das Dokumentations Element in der Datenspeicher Schema-Definitions Sprache (Store Schema Definition Language, SSDL) kann verwendet werden, um Informationen zu einem Objekt bereitzustellen, das in einem übergeordneten Element definiertThe Documentation element in store schema definition language (SSDL) can be used to provide information about an object that is defined in a parent element.

Das Documentation -Element kann die folgenden untergeordneten Elemente aufweisen (in der angegebenen Reihenfolge):The Documentation element can have the following child elements (in the order listed):

  • Zusammenfassung: eine kurze Beschreibung des übergeordneten Elements.Summary: A brief description of the parent element. (kein (Null) oder ein Element)(zero or one element)
  • LongDescription: eine umfassende Beschreibung des übergeordneten Elements.LongDescription: An extensive description of the parent element. (kein (Null) oder ein Element)(zero or one element)

Anwendbare AttributeApplicable Attributes

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das Documentation -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the Documentation element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für CSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for CSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt das Documentation -Element als untergeordnetes Element eines EntityType-Elements.The following example shows the Documentation element as a child element of an EntityType element.

 <EntityType Name="Customers">
   <Documentation>
     <Summary>Summary here.</Summary>
     <LongDescription>Long description here.</LongDescription>
   </Documentation>
   <Key>
     <PropertyRef Name="CustomerId" />
   </Key>
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
 </EntityType>

End-Element (SSDL)End Element (SSDL)

Das End -Element in der Datenspeicher Schema-Definitions Sprache (Store Schema Definition Language, SSDL) gibt die Tabelle und die Anzahl der Zeilen an einem Ende einer Fremdschlüssel Einschränkung in der zugrunde liegenden Datenbank an.The End element in store schema definition language (SSDL) specifies the table and number of rows at one end of a foreign key constraint in the underlying database. Das End -Element kann ein untergeordnetes Element des Association-Elements oder des AssociationSet-Elements sein.The End element can be a child of the Association element or the AssociationSet element. In jedem dieser Fälle sind andere untergeordnete Elemente und anwendbare Attribute die möglich.In each case, the possible child elements and applicable attributes are different.

Das End-Element als untergeordnetes Objekt des Association-ElementsEnd Element as a Child of the Association Element

Ein End -Element (als untergeordnetes Element des Association -Elements) gibt die Tabelle und die Anzahl der Zeilen am Ende einer Foreign Key-Einschränkung mit dem Type -Attribut und dem Multiplizitätsattribut an.An End element (as a child of the Association element) specifies the table and number of rows at the end of a foreign key constraint with the Type and Multiplicity attributes respectively. Die Enden einer Fremdschlüsseleinschränkung sind als Teil einer SSDL-Zuordnung definiert. Eine SSDL-Zuordnung muss genau zwei Enden aufweisen.Ends of a foreign key constraint are defined as part of an SSDL association; an SSDL association must have exactly two ends.

Ein Endelement kann die folgenden untergeordneten Elemente aufweisen (in der angegebenen Reihenfolge):An End element can have the following child elements (in the order listed):

  • Dokumentation (kein (null) oder ein Element)Documentation (zero or one element)
  • OnDelete (kein (null) oder ein Element)OnDelete (zero or one element)
  • Anmerkungselemente (kein Element (null) oder mehrere Elemente)Annotation elements (zero or more elements)

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das End -Element angewendet werden können, wenn es sich um das untergeordnete Element eines Association -Elements handelt.The following table describes the attributes that can be applied to the End element when it is the child of an Association element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
TypType JaYes Der vollqualifizierte Name der SSDL-Entitätenmenge, die sich am Ende der Fremdschlüsseleinschränkung befindet.The fully qualified name of the SSDL entity set that is at the end of the foreign key constraint.
RolleRole NeinNo Der Wert des Role -Attributs im Prinzipal-oder abhängigen Element des entsprechenden referentialeinschränkung-Elements (sofern verwendet).The value of the Role attribute in either the Principal or Dependent element of the corresponding ReferentialConstraint element (if used).
MultiplizitätMultiplicity JaYes 1, 0.. 1oder, * abhängig von der Anzahl der Zeilen, die am Ende der FOREIGN KEY-Einschränkung liegen können.1, 0..1, or * depending on the number of rows that can be at the end of the foreign key constraint.
der Wert 1 gibt an, dass genau eine Zeile am Ende der Fremdschlüssel Einschränkung vorhanden ist.1 indicates that exactly one row exists at the foreign key constraint end.
0.. 1 gibt an, dass keine oder eine Zeile am Ende der Fremdschlüssel Einschränkung vorhanden ist.0..1 indicates that zero or one row exists at the foreign key constraint end.
* Gibt an, dass keine, eine oder mehrere Zeilen am Ende der FOREIGN KEY-Einschränkung vorhanden sind.* indicates that zero, one, or more rows exist at the foreign key constraint end.

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das End -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the End element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für CSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for CSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein Association -Element, das die FOREIGN KEY-Einschränkung " FK _ CustomerOrders " definiert.The following example shows an Association element that defines the FK_CustomerOrders foreign key constraint. Die für jedes Endelement angegebenen multiplizitätswerte geben an, dass viele Zeilen in der Orders -Tabelle einer Zeile in der Customers -Tabelle zugeordnet werden können, aber nur eine Zeile in der Customers -Tabelle kann einer Zeile in der Orders -Tabelle zugeordnet werden.The Multiplicity values specified on each End element indicate that many rows in the Orders table can be associated with a row in the Customers table, but only one row in the Customers table can be associated with a row in the Orders table. Außerdem gibt das OnDelete -Element an, dass alle Zeilen in der Orders -Tabelle, die auf eine bestimmte Zeile in der Customers -Tabelle verweisen, gelöscht werden, wenn die Zeile in der Customers -Tabelle gelöscht wird.Additionally, the OnDelete element indicates that all rows in the Orders table that reference a particular row in the Customers table will be deleted if the row in the Customers table is deleted.

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

Das End-Element als untergeordnetes Objekt des AssociationSet-ElementsEnd Element as a Child of the AssociationSet Element

Das End -Element (als untergeordnetes Element des AssociationSet -Elements) gibt eine Tabelle an einem Ende einer FOREIGN KEY-Einschränkung in der zugrunde liegenden Datenbank an.The End element (as a child of the AssociationSet element) specifies a table at one end of a foreign key constraint in the underlying database.

Ein Endelement kann die folgenden untergeordneten Elemente aufweisen (in der angegebenen Reihenfolge):An End element can have the following child elements (in the order listed):

  • Dokumentation (kein (null) oder ein Element)Documentation (zero or one)
  • Anmerkungselemente (kein (null) oder mehrere Elemente)Annotation elements (zero or more)

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das End -Element angewendet werden können, wenn es sich um das untergeordnete Element eines AssociationSet -Elements handelt.The following table describes the attributes that can be applied to the End element when it is the child of an AssociationSet element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
EntitySetEntitySet JaYes Der Name der SSDL-Entitätenmenge, die sich am Ende der Fremdschlüsseleinschränkung befindet.The name of the SSDL entity set that is at the end of the foreign key constraint.
RolleRole NeinNo Der Wert eines der Rollen Attribute, der in einem Endelement des entsprechenden Association-Elements angegeben ist.The value of one of the Role attributes specified on one End element of the corresponding Association element.

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das End -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the End element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für CSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for CSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein EntityContainer -Element mit einem AssociationSet -Element mit zwei Endelementen :The following example shows an EntityContainer element with an AssociationSet element with two End elements:

 <EntityContainer Name="ExampleModelStoreContainer">
   <EntitySet Name="Customers"
              EntityType="ExampleModel.Store.Customers"
              Schema="dbo" />
   <EntitySet Name="Orders"
              EntityType="ExampleModel.Store.Orders"
              Schema="dbo" />
   <AssociationSet Name="FK_CustomerOrders"
                   Association="ExampleModel.Store.FK_CustomerOrders">
     <End Role="Customers" EntitySet="Customers" />
     <End Role="Orders" EntitySet="Orders" />
   </AssociationSet>
 </EntityContainer>

EntityContainer-Element (SSDL)EntityContainer Element (SSDL)

Ein EntityContainer -Element in der Datenspeicher Schema-Definitions Sprache (Store Schema Definition Language, SSDL) beschreibt die Struktur der zugrunde liegenden Datenquelle in einer Entity Framework Anwendung: SSDL-Entitätenmengen (definiert in EntitySet-Elementen) stellen Tabellen in einer Datenbank dar, SSDL-Entitäts Typen (definiert in EntityType-Elementen) stellen Zeilen in einer Tabelle dar, und Zuordnungs Sätze (die in AssociationSet-Elementen definiert sind) stellen Fremdschlüssel Einschränkungen in einer Datenbank dar.An EntityContainer element in store schema definition language (SSDL) describes the structure of the underlying data source in an Entity Framework application: SSDL entity sets (defined in EntitySet elements) represent tables in a database, SSDL entity types (defined in EntityType elements) represent rows in a table, and association sets (defined in AssociationSet elements) represent foreign key constraints in a database. Durch das EntityContainerMapping-Element wird einem Speichermodell-Entitätscontainer ein konzeptioneller Modellentitätscontainer zugeordnet.A storage model entity container maps to a conceptual model entity container through the EntityContainerMapping element.

Ein EntityContainer -Element kann über 0 (null) oder ein Dokumentations Element verfügen.An EntityContainer element can have zero or one Documentation elements. Wenn ein Documentation -Element vorhanden ist, muss es allen anderen untergeordneten Elementen vorangestellt werden.If a Documentation element is present, it must precede all other child elements.

Ein EntityContainer -Element kann über 0 (null) oder mehrere der folgenden untergeordneten Elemente verfügen (in der angegebenen Reihenfolge):An EntityContainer element can have zero or more of the following child elements (in the order listed):

  • EntitySetEntitySet
  • AssociationSetAssociationSet
  • AnmerkungselementeAnnotation elements

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das EntityContainer -Element angewendet werden können.The table below describes the attributes that can be applied to the EntityContainer element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
NameName JaYes Der Name des Entitätscontainers.The name of the entity container. Dieser Name darf keine Punkte (.) enthalten.This name cannot contain periods (.).

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das EntityContainer -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the EntityContainer element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein EntityContainer -Element, das zwei Entitätenmengen und einen Zuordnungs Satz definiert.The following example shows an EntityContainer element that defines two entity sets and one association set. Beachten Sie, dass die Namen des Entitätstyps und des Zuordnungstyps mit dem Namespace des konzeptionellen Modellnamens qualifiziert werden.Note that entity type and association type names are qualified by the conceptual model namespace name.

 <EntityContainer Name="ExampleModelStoreContainer">
   <EntitySet Name="Customers"
              EntityType="ExampleModel.Store.Customers"
              Schema="dbo" />
   <EntitySet Name="Orders"
              EntityType="ExampleModel.Store.Orders"
              Schema="dbo" />
   <AssociationSet Name="FK_CustomerOrders"
                   Association="ExampleModel.Store.FK_CustomerOrders">
     <End Role="Customers" EntitySet="Customers" />
     <End Role="Orders" EntitySet="Orders" />
   </AssociationSet>
 </EntityContainer>

EntitySet-Element (SSDL)EntitySet Element (SSDL)

Ein EntitySet -Element in der Datenspeicher Schema-Definitions Sprache (SSDL) stellt eine Tabelle oder Sicht in der zugrunde liegenden Datenbank dar.An EntitySet element in store schema definition language (SSDL) represents a table or view in the underlying database. Ein EntityType-Element in SSDL stellt eine Zeile in der Tabelle oder der Ansicht dar.An EntityType element in SSDL represents a row in the table or view. Das EntityType -Attribut eines EntitySet -Elements gibt den spezifischen SSDL-Entitätstyp an, der Zeilen in einer SSDL-Entitätenmenge darstellt.The EntityType attribute of an EntitySet element specifies the particular SSDL entity type that represents rows in an SSDL entity set. Die Zuordnung einer CSDL-Entitätenmenge zu einer SSDL-Entitätenmenge wird in einem EntitySetMapping-Element angegeben.The mapping between a CSDL entity set and an SSDL entity set is specified in an EntitySetMapping element.

Das EntitySet -Element kann die folgenden untergeordneten Elemente aufweisen (in der angegebenen Reihenfolge):The EntitySet element can have the following child elements (in the order listed):

  • Dokumentation (kein (null) oder ein Element)Documentation (zero or one element)
  • DefiningQuery (kein (null) oder ein Element)DefiningQuery (zero or one element)
  • AnmerkungselementeAnnotation elements

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das EntitySet -Element angewendet werden können.The following table describes the attributes that can be applied to the EntitySet element.

Hinweis

Einige (hier nicht aufgelistete) Attribute können mit dem Store -Alias qualifiziert werden.Some attributes (not listed here) may be qualified with the store alias. Diese Attribute werden vom Modellaktualisierungs-Assistenten beim Aktualisieren eines Modells verwendet.These attributes are used by the Update Model Wizard when updating a model.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
NameName JaYes Der Name des Entitätssatzes.The name of the entity set.
EntityTypeEntityType JaYes Der vollqualifizierte Name des Entitätstyps, für den der Entitätssatz Instanzen enthält.The fully-qualified name of the entity type for which the entity set contains instances.
SchemaSchema NeinNo Das Datenbankschema.The database schema.
TableTable NeinNo Die Datenbanktabelle.The database table.

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das EntitySet -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the EntitySet element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein EntityContainer -Element, das über zwei EntitySet -Elemente und ein AssociationSet -Element verfügt:The following example shows an EntityContainer element that has two EntitySet elements and one AssociationSet element:

 <EntityContainer Name="ExampleModelStoreContainer">
   <EntitySet Name="Customers"
              EntityType="ExampleModel.Store.Customers"
              Schema="dbo" />
   <EntitySet Name="Orders"
              EntityType="ExampleModel.Store.Orders"
              Schema="dbo" />
   <AssociationSet Name="FK_CustomerOrders"
                   Association="ExampleModel.Store.FK_CustomerOrders">
     <End Role="Customers" EntitySet="Customers" />
     <End Role="Orders" EntitySet="Orders" />
   </AssociationSet>
 </EntityContainer>

EntityType-Element (SSDL)EntityType Element (SSDL)

Ein EntityType -Element in der Datenspeicher Schema-Definitions Sprache (SSDL) stellt eine Zeile in einer Tabelle oder Sicht der zugrunde liegenden Datenbank dar.An EntityType element in store schema definition language (SSDL) represents a row in a table or view of the underlying database. Ein EntitySet-Element in SSDL stellt die Tabelle oder Ansicht dar, in der Zeilen enthalten sind.An EntitySet element in SSDL represents the table or view in which rows occur. Das EntityType -Attribut eines EntitySet -Elements gibt den spezifischen SSDL-Entitätstyp an, der Zeilen in einer SSDL-Entitätenmenge darstellt.The EntityType attribute of an EntitySet element specifies the particular SSDL entity type that represents rows in an SSDL entity set. Die Zuordnung eines SSDL-Entitätstyps zu einem CSDL-Entitätstyp wird in einem EntityTypeMapping-Element angegeben.The mapping between an SSDL entity type and a CSDL entity type is specified in an EntityTypeMapping element.

Das EntityType -Element kann die folgenden untergeordneten Elemente aufweisen (in der angegebenen Reihenfolge):The EntityType element can have the following child elements (in the order listed):

  • Dokumentation (kein (null) oder ein Element)Documentation (zero or one element)
  • Key (kein (null) oder ein Element)Key (zero or one element)
  • AnmerkungselementeAnnotation elements

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das EntityType -Element angewendet werden können.The table below describes the attributes that can be applied to the EntityType element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
NameName JaYes Der Name des Entitätstyps.The name of the entity type. Dieser Wert ist normalerweise der gleiche wie der Name der Tabelle, in der der Entitätstyp eine Zeile darstellt.This value is usually the same as the name of the table in which the entity type represents a row. Dieser Wert darf keine Punkte (.) enthalten.This value can contain no periods (.).

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das EntityType -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the EntityType element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein EntityType -Element mit zwei Eigenschaften:The following example shows an EntityType element with two properties:

 <EntityType Name="Customers">
   <Documentation>
     <Summary>Summary here.</Summary>
     <LongDescription>Long description here.</LongDescription>
   </Documentation>
   <Key>
     <PropertyRef Name="CustomerId" />
   </Key>
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
 </EntityType>

Function-Element (SSDL)Function Element (SSDL)

Das Function -Element in der Datenspeicher Schema-Definitions Sprache (SSDL) gibt eine gespeicherte Prozedur an, die in der zugrunde liegenden Datenbank vorhanden ist.The Function element in store schema definition language (SSDL) specifies a stored procedure that exists in the underlying database.

Das Function -Element kann die folgenden untergeordneten Elemente aufweisen (in der angegebenen Reihenfolge):The Function element can have the following child elements (in the order listed):

  • Dokumentation (kein (null) oder ein Element)Documentation (zero or one)
  • Parameter (0 (null) oder mehr)Parameter (zero or more)
  • CommandText (0 (null) oder 1)CommandText (zero or one)
  • ReturnType (0 (null) oder mehr)ReturnType (zero or more)
  • Anmerkungselemente (kein (null) oder mehrere Elemente)Annotation elements (zero or more)

Ein Rückgabetyp für eine Funktion muss entweder mit dem returnType -Element oder dem returnType -Attribut angegeben werden (siehe unten), aber nicht mit beiden.A return type for a function must be specified with either the ReturnType element or the ReturnType attribute (see below), but not both.

Gespeicherte Prozeduren, die im Speichermodell angegeben sind, können in das konzeptionelle Modell einer Anwendung importiert werden.Stored procedures that are specified in the storage model can be imported into the conceptual model of an application. Weitere Informationen finden Sie unter Abfragen mit gespeicherten Prozeduren.For more information, see Querying with Stored Procedures. Das Function -Element kann auch verwendet werden, um benutzerdefinierte Funktionen im Speichermodell zu definieren.The Function element can also be used to define custom functions in the storage model.  

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das Function -Element angewendet werden können.The following table describes the attributes that can be applied to the Function element.

Hinweis

Einige (hier nicht aufgelistete) Attribute können mit dem Store -Alias qualifiziert werden.Some attributes (not listed here) may be qualified with the store alias. Diese Attribute werden vom Modellaktualisierungs-Assistenten beim Aktualisieren eines Modells verwendet.These attributes are used by the Update Model Wizard when updating a model.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
NameName JaYes Name der gespeicherten ProzedurThe name of the stored procedure.
ReturnTypeReturnType NeinNo Der Rückgabetyp der gespeicherten Prozedur.The return type of the stored procedure.
AggregatAggregate NeinNo True , wenn die gespeicherte Prozedur einen Aggregatwert zurückgibt. andernfalls false.True if the stored procedure returns an aggregate value; otherwise False.
BuiltinBuiltIn NeinNo True , wenn es sich bei der Funktion um eine integrierte1 -Funktion handelt. andernfalls false.True if the function is a built-in1 function; otherwise False.
StoreFunctionNameStoreFunctionName NeinNo Name der gespeicherten ProzedurThe name of the stored procedure.
NiladicFunctionNiladicFunction NeinNo True , wenn es sich bei der Funktion um eine NILADIC2 -Funktion handelt. Andernfalls false .True if the function is a niladic2 function; False otherwise.
IsComposableIsComposable NeinNo True , wenn die Funktion eine Zusammensetz Bare3 -Funktion ist. Andernfalls false .True if the function is a composable3 function; False otherwise.
DasParameterTypeSemantics NeinNo Die Enumeration, die die Typsemantik definiert, die zum Auflösen von Funktionsüberladungen verwendet wird.The enumeration that defines the type semantics used to resolve function overloads. Die Enumeration ist im Anbietermanifest für jede Funktionsdefinition definiert.The enumeration is defined in the provider manifest per function definition. Der Standardwert ist " zuzubemplicitconversion".The default value is AllowImplicitConversion.
SchemaSchema NeinNo Der Name des Schemas, in dem die gespeicherte Prozedur definiert ist.The name of the schema in which the stored procedure is defined.

1 eine integrierte Funktion ist eine Funktion, die in der Datenbank definiert ist.1 A built-in function is a function that is defined in the database. Informationen zu Funktionen, die im Speichermodell definiert sind, finden Sie unter CommandText-Element (SSDL).For information about functions that are defined in the storage model, see CommandText Element (SSDL).

2 eine NILADIC-Funktion ist eine Funktion, die keine Parameter akzeptiert und, wenn Sie aufgerufen wird, keine Klammern erfordert.2 A niladic function is a function that accepts no parameters and, when called, does not require parentheses.

3 zwei Funktionen sind zusammensetzbar, wenn die Ausgabe einer Funktion als Eingabe für die andere Funktion dienen kann.3 Two functions are composable if the output of one function can be the input for the other function.

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das Function -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the Function element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein Function -Element, das der gespeicherten Prozedur updateordermenge entspricht.The following example shows a Function element that corresponds to the UpdateOrderQuantity stored procedure. Die gespeicherte Prozedur akzeptiert zwei Parameter und gibt keinen Wert zurück.The stored procedure accepts two parameters and does not return a value.

 <Function Name="UpdateOrderQuantity"
           Aggregate="false"
           BuiltIn="false"
           NiladicFunction="false"
           IsComposable="false"
           ParameterTypeSemantics="AllowImplicitConversion"
           Schema="dbo">
   <Parameter Name="orderId" Type="int" Mode="In" />
   <Parameter Name="newQuantity" Type="int" Mode="In" />
 </Function>

Key-Element (SSDL)Key Element (SSDL)

Das Schlüssel Element in der Datenspeicher Schema-Definitions Sprache (Store Schema Definition Language, SSDL) stellt den Primärschlüssel einer Tabelle in der zugrunde liegenden Datenbank dar.The Key element in store schema definition language (SSDL) represents the primary key of a table in the underlying database. Key ist ein untergeordnetes Element eines EntityType-Elements, das eine Zeile in einer Tabelle darstellt.Key is a child element of an EntityType element, which represents a row in a table. Der Primärschlüssel wird im Key -Element definiert, indem auf ein oder mehrere Eigenschafts Elemente verwiesen wird, die für das EntityType -Element definiert sind.The primary key is defined in the Key element by referencing one or more Property elements that are defined on the EntityType element.

Das Key -Element kann die folgenden untergeordneten Elemente aufweisen (in der angegebenen Reihenfolge):The Key element can have the following child elements (in the order listed):

  • PropertyRef (ein oder mehrere Elemente)PropertyRef (one or more)
  • AnmerkungselementeAnnotation elements

Für das Key -Element sind keine Attribute anwendbar.No attributes are applicable to the Key element.

BeispielExample

Das folgende Beispiel zeigt ein EntityType -Element mit einem Schlüssel, der auf eine Eigenschaft verweist:The following example shows an EntityType element with a key that references one property:

 <EntityType Name="Customers">
   <Documentation>
     <Summary>Summary here.</Summary>
     <LongDescription>Long description here.</LongDescription>
   </Documentation>
   <Key>
     <PropertyRef Name="CustomerId" />
   </Key>
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
 </EntityType>

OnDelete-Element (SSDL)OnDelete Element (SSDL)

Das OnDelete -Element in der Datenspeicher Schema-Definitions Sprache (Store Schema Definition Language, SSDL) spiegelt das Daten Bank Verhalten wider, wenn eine Zeile, die Teil einer FOREIGN KEY-EinschränkungThe OnDelete element in store schema definition language (SSDL) reflects the database behavior when a row that participates in a foreign key constraint is deleted. Wenn die Aktion auf Cascadefestgelegt ist, werden Zeilen, die auf eine Zeile verweisen, die gelöscht wird, ebenfalls gelöscht.If the action is set to Cascade, then rows that reference a row that is being deleted will also be deleted. Wenn die Aktion auf Nonefestgelegt ist, werden Zeilen, die auf eine Zeile verweisen, die gelöscht wird, nicht ebenfalls gelöscht.If the action is set to None, then rows that reference a row that is being deleted are not also deleted. Ein OnDelete -Element ist ein untergeordnetes Element eines End-Elements.An OnDelete element is a child element of an End element.

Ein OnDelete -Element kann die folgenden untergeordneten Elemente aufweisen (in der angegebenen Reihenfolge):An OnDelete element can have the following child elements (in the order listed):

  • Dokumentation (kein (null) oder ein Element)Documentation (zero or one)
  • Anmerkungselemente (kein (null) oder mehrere Elemente)Annotation elements (zero or more)

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das OnDelete -Element angewendet werden können.The following table describes the attributes that can be applied to the OnDelete element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
AktionAction JaYes Cascade oder None.Cascade or None. (Der Wert " restricted " ist gültig, hat jedoch das gleiche Verhalten wie " None".)(The value Restricted is valid but has the same behavior as None.)

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das OnDelete -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the OnDelete element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein Association -Element, das die FOREIGN KEY-Einschränkung " FK _ CustomerOrders " definiert.The following example shows an Association element that defines the FK_CustomerOrders foreign key constraint. Das OnDelete -Element gibt an, dass alle Zeilen in der Orders -Tabelle, die auf eine bestimmte Zeile in der Customers -Tabelle verweisen, gelöscht werden, wenn die Zeile in der Customers -Tabelle gelöscht wird.The OnDelete element indicates that all rows in the Orders table that reference a particular row in the Customers table will be deleted if the row in the Customers table is deleted.

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

Parameter-Element (SSDL)Parameter Element (SSDL)

Das Parameter -Element in der Datenspeicher Schema-Definitions Sprache (SSDL) ist ein untergeordnetes Element des Function-Elements, das Parameter für eine gespeicherte Prozedur in der Datenbank angibt.The Parameter element in store schema definition language (SSDL) is a child of the Function element that specifies parameters for a stored procedure in the database.

Das Parameter -Element kann die folgenden untergeordneten Elemente aufweisen (in der angegebenen Reihenfolge):The Parameter element can have the following child elements (in the order listed):

  • Dokumentation (kein (null) oder ein Element)Documentation (zero or one)
  • Anmerkungselemente (kein (null) oder mehrere Elemente)Annotation elements (zero or more)

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das Parameter -Element angewendet werden können.The table below describes the attributes that can be applied to the Parameter element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
NameName JaYes Der Name des Parameters.The name of the parameter.
TypType JaYes Der Parametertyp.The parameter type.
ModeMode NeinNo In, out oder INOUT , je nachdem, ob der Parameter ein Eingabe-, Ausgabe-oder Eingabe- /Ausgabeparameterist.In, Out, or InOut depending on whether the parameter is an input, output, or input/output parameter.
MaxLengthMaxLength NeinNo Die maximale Länge des Parameters.The maximum length of the parameter.
GenauigkeitPrecision NeinNo Die Genauigkeit des Parameters.The precision of the parameter.
SkalierungScale NeinNo Der Maßstab des Parameters.The scale of the parameter.
SRIDSRID NeinNo Verweis Bezeichner für räumliche Systeme.Spatial System Reference Identifier. Nur für Parameter räumlicher Typen gültig.Valid only for parameters of spatial types. Weitere Informationen finden Sie unter SRID und SRID (SQL Server).For more information, see SRID and SRID (SQL Server).

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das Parameter Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the Parameter element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein Function -Element, das über zwei Parameter Elemente verfügt, die Eingabeparameter angeben:The following example shows a Function element that has two Parameter elements that specify input parameters:

 <Function Name="UpdateOrderQuantity"
           Aggregate="false"
           BuiltIn="false"
           NiladicFunction="false"
           IsComposable="false"
           ParameterTypeSemantics="AllowImplicitConversion"
           Schema="dbo">
   <Parameter Name="orderId" Type="int" Mode="In" />
   <Parameter Name="newQuantity" Type="int" Mode="In" />
 </Function>

Prinzipalelement (SSDL)Principal Element (SSDL)

Das Principal -Element in der Speicher Schema-Definitions Sprache (Store Schema Definition Language, SSDL) ist ein untergeordnetes Element des referentialeinschränkung-Elements, das das Prinzipal Ende einer FOREIGN KEY-Einschränkung definiert (auch referenzielle Einschränkung genannt).The Principal element in store schema definition language (SSDL) is a child element to the ReferentialConstraint element that defines the principal end of a foreign key constraint (also called a referential constraint). Das Principal -Element gibt die Primärschlüssel Spalte (oder Spalten) in einer Tabelle an, auf die von einer anderen Spalte (oder Spalten) verwiesen wird.The Principal element specifies the primary key column (or columns) in a table that is referenced by another column (or columns). PropertyRef -Elemente geben an, auf welche Spalten verwiesen wird.PropertyRef elements specify which columns are referenced. Das abhängige Element gibt die Spalten an, die auf die Primärschlüssel Spalten verweisen, die im Principal -Element angegeben sind.The Dependent element specifies columns that reference the primary key columns that are specified in the Principal element.

Das Principal -Element kann über die folgenden untergeordneten Elemente verfügen (in der angegebenen Reihenfolge):The Principal element can have the following child elements (in the order listed):

  • PropertyRef (ein oder mehrere Elemente)PropertyRef (one or more)
  • Anmerkungselemente (kein (null) oder mehrere Elemente)Annotation elements (zero or more)

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das Principal -Element angewendet werden können.The following table describes the attributes that can be applied to the Principal element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
RolleRole JaYes Der gleiche Wert wie das Role -Attribut (sofern verwendet) des entsprechenden End-Elements. andernfalls der Name der Tabelle, die die Spalte enthält, auf die verwiesen wird.The same value as the Role attribute (if used) of the corresponding End element; otherwise, the name of the table that contains the referenced column.

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das Principal -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the Principal element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für CSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for CSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein Association-Element, das ein referentialeinschränkungs -Element verwendet, um die Spalten anzugeben, die an der FOREIGN KEY-Einschränkung von FK _ CustomerOrders beteiligt sind.The following example shows an Association element that uses a ReferentialConstraint element to specify the columns that participate in the FK_CustomerOrders foreign key constraint. Das Principal -Element gibt die CustomerID- Spalte der Customer -Tabelle als Prinzipal Ende der Einschränkung an.The Principal element specifies the CustomerId column of the Customer table as the principal end of the constraint.

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

Property-Element (SSDL)Property Element (SSDL)

Das Property -Element in der Datenspeicher Schema-Definitions Sprache (SSDL) stellt eine Spalte in einer Tabelle in der zugrunde liegenden Datenbank dar.The Property element in store schema definition language (SSDL) represents a column in a table in the underlying database. Eigenschaften Elemente sind untergeordnete Elemente von EntityType-Elementen, die Zeilen in einer Tabelle darstellen.Property elements are children of EntityType elements, which represent rows in a table. Jedes für ein EntityType -Element definierte Eigenschafts Element stellt eine Spalte dar.Each Property element defined on an EntityType element represents a column.

Ein Property -Element kann keine untergeordneten Elemente aufweisen.A Property element cannot have any child elements.

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das Property -Element angewendet werden können.The following table describes the attributes that can be applied to the Property element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
NameName JaYes Der Name der zugehörigen Spalte.The name of the corresponding column.
TypType JaYes Der Typ der zugehörigen Spalte.The type of the corresponding column.
NULL zulassenNullable NeinNo True (Standardwert) oder false , abhängig davon, ob die entsprechende Spalte einen NULL-Wert aufweisen kann.True (the default value) or False depending on whether the corresponding column can have a null value.
DefaultValueDefaultValue NeinNo Der Standardwert der zugehörigen Spalte.The default value of the corresponding column.
MaxLengthMaxLength NeinNo Maximale Länge der zugehörigen Spalte.The maximum length of the corresponding column.
FixedLengthFixedLength NeinNo True oder false , abhängig davon, ob der entsprechende Spaltenwert als Zeichenfolge mit fester Länge gespeichert wird.True or False depending on whether the corresponding column value will be stored as a fixed length string.
GenauigkeitPrecision NeinNo Die Genauigkeit der zugehörigen Spalte.The precision of the corresponding column.
SkalierungScale NeinNo Die Dezimalstellenanzahl der zugehörigen Spalte.The scale of the corresponding column.
UnicodeUnicode NeinNo True oder false , abhängig davon, ob der entsprechende Spaltenwert als Unicode-Zeichenfolge gespeichert wird.True or False depending on whether the corresponding column value will be stored as a Unicode string.
SortierungCollation NeinNo Eine Zeichenfolge, die angibt, welche Sortierreihenfolge in der Datenquelle verwendet wird.A string that specifies the collating sequence to be used in the data source.
SRIDSRID NeinNo Verweis Bezeichner für räumliche Systeme.Spatial System Reference Identifier. Nur für Eigenschaften räumlicher Typen gültig.Valid only for properties of spatial types. Weitere Informationen finden Sie unter SRID und SRID (SQL Server).For more information, see SRID and SRID (SQL Server).
StoreGeneratedPatternStoreGeneratedPattern NeinNo None, Identity (wenn der entsprechende Spaltenwert eine in der Datenbank generierte Identität ist) oder berechnet (wenn der entsprechende Spaltenwert in der Datenbank berechnet wird).None, Identity (if the corresponding column value is an identity that is generated in the database), or Computed (if the corresponding column value is computed in the database). Ungültig für RowType-Eigenschaften.Not Valid for RowType properties.

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das Property -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the Property element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein EntityType -Element mit zwei untergeordneten Eigenschaften Elementen:The following example shows an EntityType element with two child Property elements:

 <EntityType Name="Customers">
   <Documentation>
     <Summary>Summary here.</Summary>
     <LongDescription>Long description here.</LongDescription>
   </Documentation>
   <Key>
     <PropertyRef Name="CustomerId" />
   </Key>
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
 </EntityType>

PropertyRef-Element (SSDL)PropertyRef Element (SSDL)

Das PropertyRef -Element in der Speicher Schema-Definitions Sprache (Store Schema Definition Language, SSDL) verweist auf eine für ein EntityType-Element definierte Eigenschaft, um anzugeben, dass die-Eigenschaft eine der folgenden Rollen ausführt:The PropertyRef element in store schema definition language (SSDL) references a property defined on an EntityType element to indicate that the property will perform one of the following roles:

  • Ist Teil des Primärschlüssels der Tabelle, die der EntityType darstellt.Be part of the primary key of the table that the EntityType represents. Ein oder mehrere PropertyRef -Elemente können verwendet werden, um einen Primärschlüssel zu definieren.One or more PropertyRef elements can be used to define a primary key. Weitere Informationen finden Sie unter Key-Element.For more information, see Key element.
  • Sie ist das abhängige Ende oder das Prinzipalende einer referenziellen Einschränkung.Be the dependent or principal end of a referential constraint. Weitere Informationen finden Sie unter ReferentialConstraint-Element.For more information, see ReferentialConstraint element.

Das PropertyRef -Element kann nur die folgenden untergeordneten Elemente aufweisen:The PropertyRef element can only have the following child elements:

  • Dokumentation (kein (null) oder ein Element)Documentation (zero or one)
  • AnmerkungselementeAnnotation elements

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das PropertyRef -Element angewendet werden können.The table below describes the attributes that can be applied to the PropertyRef element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
NameName JaYes Der Name der referenzierten Eigenschaft.The name of the referenced property.

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das PropertyRef -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the PropertyRef element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für CSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for CSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein PropertyRef -Element, das verwendet wird, um einen Primärschlüssel zu definieren, indem auf eine Eigenschaft verwiesen wird, die für ein EntityType -Element definiert ist.The following example shows a PropertyRef element used to define a primary key by referencing a property that is defined on an EntityType element.

 <EntityType Name="Customers">
   <Documentation>
     <Summary>Summary here.</Summary>
     <LongDescription>Long description here.</LongDescription>
   </Documentation>
   <Key>
     <PropertyRef Name="CustomerId" />
   </Key>
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
 </EntityType>

ReferentialConstraint-Element (SSDL)ReferentialConstraint Element (SSDL)

Das referentialeinschränkungs -Element in der Datenspeicher Schema-Definitions Sprache (SSDL) stellt eine FOREIGN KEY-Einschränkung (auch referenzielle Integritäts Einschränkung genannt) in der zugrunde liegenden Datenbank dar.The ReferentialConstraint element in store schema definition language (SSDL) represents a foreign key constraint (also called a referential integrity constraint) in the underlying database. Das Prinzipalende und das abhängige Ende der Einschränkung werden durch das Principal-Element bzw. das Dependent-Element angegeben.The principal and dependent ends of the constraint are specified by the Principal and Dependent child elements, respectively. Auf Spalten, die am Prinzipalende und am abhängigen Enden beteiligt sind, wird mit PropertyRef-Elementen verwiesen.Columns that participate in the principal and dependent ends are referenced with PropertyRef elements.

Das referentialeinschränkung -Element ist ein optionales untergeordnetes Element des Association-Elements.The ReferentialConstraint element is an optional child element of the Association element. Wenn ein referentialeinschränkungs -Element nicht verwendet wird, um die FOREIGN KEY-Einschränkung zuzuordnen, die im Association -Element angegeben ist, muss hierfür ein AssociationSetMapping-Element verwendet werden.If a ReferentialConstraint element is not used to map the foreign key constraint that is specified in the Association element, an AssociationSetMapping element must be used to do this.

Das referentialeinschränkung -Element kann die folgenden untergeordneten Elemente aufweisen:The ReferentialConstraint element can have the following child elements:

  • Dokumentation (kein (null) oder ein Element)Documentation (zero or one)
  • Principal (genau ein Element)Principal (exactly one)
  • Dependent (genau ein Element)Dependent (exactly one)
  • Anmerkungselemente (kein (null) oder mehrere Elemente)Annotation elements (zero or more)

Anwendbare AttributeApplicable Attributes

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das referentialeinschränkung -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the ReferentialConstraint element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Das folgende Beispiel zeigt ein Association -Element, das ein referentialeinschränkungs -Element verwendet, um die Spalten anzugeben, die an der FOREIGN KEY-Einschränkung von FK _ CustomerOrders beteiligt sind:The following example shows an Association element that uses a ReferentialConstraint element to specify the columns that participate in the FK_CustomerOrders foreign key constraint:

 <Association Name="FK_CustomerOrders">
   <End Role="Customers"
        Type="ExampleModel.Store.Customers" Multiplicity="1">
     <OnDelete Action="Cascade" />
   </End>
   <End Role="Orders"
        Type="ExampleModel.Store.Orders" Multiplicity="*" />
   <ReferentialConstraint>
     <Principal Role="Customers">
       <PropertyRef Name="CustomerId" />
     </Principal>
     <Dependent Role="Orders">
       <PropertyRef Name="CustomerId" />
     </Dependent>
   </ReferentialConstraint>
 </Association>

ReturnType-Element (SSDL)ReturnType Element (SSDL)

Das returnType -Element in der Speicher Schema-Definitions Sprache (SSDL) gibt den Rückgabetyp für eine Funktion an, die in einem Function -Element definiert ist.The ReturnType element in store schema definition language (SSDL) specifies the return type for a function that is defined in a Function element. Ein Funktions Rückgabetyp kann auch mit einem returnType -Attribut angegeben werden.A function return type can also be specified with a ReturnType attribute.

Der Rückgabetyp einer Funktion wird mit dem Type -Attribut oder dem returnType -Element angegeben.The return type of a function is specified with the Type attribute or the ReturnType element.

Das returnType -Element kann die folgenden untergeordneten Elemente aufweisen:The ReturnType element can have the following child elements:

  • CollectionType (eins)CollectionType (one)

Hinweis

Eine beliebige Anzahl von Anmerkung-Attributen (benutzerdefinierte XML-Attribute) kann auf das returnType -Element angewendet werden.Any number of annotation attributes (custom XML attributes) may be applied to the ReturnType element. Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für SSDL reserviert ist.However, custom attributes may not belong to any XML namespace that is reserved for SSDL. Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.The fully-qualified names for any two custom attributes cannot be the same.

BeispielExample

Im folgenden Beispiel wird eine Funktion verwendet, die eine Auflistung von Zeilen zurückgibt.The following example uses a Function that returns a collection of rows.

   <Function Name="GetProducts" IsComposable="true" Schema="dbo">
     <ReturnType>
       <CollectionType>
         <RowType>
           <Property Name="ProductID" Type="int" Nullable="false" />
           <Property Name="CategoryID" Type="bigint" Nullable="false" />
           <Property Name="ProductName" Type="nvarchar" MaxLength="40" Nullable="false" />
           <Property Name="UnitPrice" Type="money" />
           <Property Name="Discontinued" Type="bit" />
         </RowType>
       </CollectionType>
     </ReturnType>
   </Function>

RowType-Element (SSDL)RowType Element (SSDL)

Ein RowType -Element in der Speicher Schema-Definitions Sprache (Store Schema Definition Language, SSDL) definiert eine unbenannte Struktur als Rückgabetyp für eine im Speicher definierte Funktion.A RowType element in store schema definition language (SSDL) defines an unnamed structure as a return type for a function defined in the store.

Ein RowType -Element ist das untergeordnete Element des CollectionType -Elements:A RowType element is the child element of CollectionType element:

Ein RowType -Element kann die folgenden untergeordneten Elemente aufweisen:A RowType element can have the following child elements:

  • Eigenschaft (ein oder mehrere Elemente)Property (one or more)

BeispielExample

Das folgende Beispiel zeigt eine Store-Funktion, die ein CollectionType -Element verwendet, um anzugeben, dass die Funktion eine Auflistung von Zeilen zurückgibt (wie im RowType -Element angegeben).The following example shows a store function that uses a CollectionType element to specify that the function returns a collection of rows (as specified in the RowType element).

   <Function Name="GetProducts" IsComposable="true" Schema="dbo">
     <ReturnType>
       <CollectionType>
         <RowType>
           <Property Name="ProductID" Type="int" Nullable="false" />
           <Property Name="CategoryID" Type="bigint" Nullable="false" />
           <Property Name="ProductName" Type="nvarchar" MaxLength="40" Nullable="false" />
           <Property Name="UnitPrice" Type="money" />
           <Property Name="Discontinued" Type="bit" />
         </RowType>
       </CollectionType>
     </ReturnType>
   </Function>

Schema-Element (SSDL)Schema Element (SSDL)

Das Schema -Element in der Speicher Schema-Definitions Sprache (Store Schema Definition Language, SSDL) ist das Stamm Element einer Speichermodell Definition.The Schema element in store schema definition language (SSDL) is the root element of a storage model definition. Es enthält Definitionen für die Objekte, Funktionen und Container, die zusammen ein Speichermodell bilden.It contains definitions for the objects, functions, and containers that make up a storage model.

Das Schema Element kann NULL oder mehr der folgenden untergeordneten Elemente enthalten:The Schema element may contain zero or more of the following child elements:

  • ZuordnungAssociation
  • EntityTypeEntityType
  • EntityContainerEntityContainer
  • AufgabeFunction

Das Schema -Element verwendet das Namespace -Attribut, um den Namespace für den Entitätstyp und die Zuordnungs Objekte in einem Speichermodell zu definieren.The Schema element uses the Namespace attribute to define the namespace for the entity type and association objects in a storage model. Innerhalb eines Namespace müssen alle Objekte eine eindeutige Bezeichnung aufweisen.Within a namespace, no two objects can have the same name.

Ein Speichermodell-Namespace unterscheidet sich vom XML-Namespace des Schema -Elements.A storage model namespace is different from the XML namespace of the Schema element. Ein Speichermodell-Namespace (wie durch das Namespace -Attribut definiert) ist ein logischer Container für Entitäts Typen und Zuordnungs Typen.A storage model namespace (as defined by the Namespace attribute) is a logical container for entity types and association types. Der XML-Namespace (angegeben durch das xmlns -Attribut) eines Schema -Elements ist der Standard Namespace für untergeordnete Elemente und Attribute des Schema -Elements.The XML namespace (indicated by the xmlns attribute) of a Schema element is the default namespace for child elements and attributes of the Schema element. XML-Namespaces im Formular https://schemas.microsoft.com/ado/YYYY/MM/edm/ssdl (wobei yyyy und mm jeweils ein Jahr und einen Monat darstellen) sind für SSDL reserviert.XML namespaces of the form https://schemas.microsoft.com/ado/YYYY/MM/edm/ssdl (where YYYY and MM represent a year and month respectively) are reserved for SSDL. Benutzerdefinierte Elemente und Attribute können nicht in Namespaces mit diesem Format vorhanden sein.Custom elements and attributes cannot be in namespaces that have this form.

Anwendbare AttributeApplicable Attributes

In der folgenden Tabelle werden die Attribute beschrieben, die auf das Schema Element angewendet werden können.The table below describes the attributes can be applied to the Schema element.

AttributnameAttribute Name Ist erforderlichIs Required WertValue
NamespaceNamespace JaYes Der Namespace für das Speichermodell.The namespace of the storage model. Der Wert des Namespace -Attributs wird verwendet, um den voll qualifizierten Namen eines Typs zu bilden.The value of the Namespace attribute is used to form the fully qualified name of a type. Wenn sich beispielsweise ein EntityType mit dem Namen Customer im examplemodel. Store-Namespace befindet, ist der voll qualifizierte Name von EntityType examplemodel. Store. Customer.For example, if an EntityType named Customer is in the ExampleModel.Store namespace, then the fully qualified name of the EntityType is ExampleModel.Store.Customer.
Die folgenden Zeichen folgen können nicht als Wert für das Namespace -Attribut verwendet werden: System, transientoder EDM.The following strings cannot be used as the value for the Namespace attribute: System, Transient, or Edm. Der Wert für das Namespace -Attribut darf nicht mit dem Wert für das Namespace -Attribut im CSDL-Schema Element identisch sein.The value for the Namespace attribute cannot be the same as the value for the Namespace attribute in the CSDL Schema element.
AliasAlias NeinNo Ein anstelle der Namespacebezeichnung verwendeter Bezeichner.An identifier used in place of the namespace name. Wenn sich z. b. ein EntityType mit dem Namen Customer im examplemodel. Store-Namespace und der Wert des Alias -Attributs storagemodelbefindet, können Sie storagemodel. Customer als voll qualifizierten Namen des EntityType verwenden.For example, if an EntityType named Customer is in the ExampleModel.Store namespace and the value of the Alias attribute is StorageModel, then you can use StorageModel.Customer as the fully qualified name of the EntityType.
AnbieterProvider JaYes Der Datenanbieter.The data provider.
ProviderManifestTokenProviderManifestToken JaYes Ein Token, das dem Anbieter angibt, welches Anbietermanifest zurückgegeben werden soll.A token that indicates to the provider which provider manifest to return. Für das Token ist kein Format definiert.No format for the token is defined. Die für das Token möglichen Werte werden vom Anbieter definiert.Values for the token are defined by the provider. Informationen zu SQL Server-Anbieter Manifest-Token finden Sie unter SqlClient for Entity Framework.For information about SQL Server provider manifest tokens, see SqlClient for Entity Framework.

BeispielExample

Das folgende Beispiel zeigt ein Schema -Element, das ein EntityContainer -Element, zwei EntityType -Elemente und ein Association -Element enthält.The following example shows a Schema element that contains an EntityContainer element, two EntityType elements, and one Association element.

 <Schema Namespace="ExampleModel.Store"
       Alias="Self" Provider="System.Data.SqlClient"
       ProviderManifestToken="2008"
       xmlns="https://schemas.microsoft.com/ado/2009/11/edm/ssdl">
   <EntityContainer Name="ExampleModelStoreContainer">
     <EntitySet Name="Customers"
                EntityType="ExampleModel.Store.Customers"
                Schema="dbo" />
     <EntitySet Name="Orders"
                EntityType="ExampleModel.Store.Orders"
                Schema="dbo" />
     <AssociationSet Name="FK_CustomerOrders"
                     Association="ExampleModel.Store.FK_CustomerOrders">
       <End Role="Customers" EntitySet="Customers" />
       <End Role="Orders" EntitySet="Orders" />
     </AssociationSet>
   </EntityContainer>
   <EntityType Name="Customers">
     <Documentation>
       <Summary>Summary here.</Summary>
       <LongDescription>Long description here.</LongDescription>
     </Documentation>
     <Key>
       <PropertyRef Name="CustomerId" />
     </Key>
     <Property Name="CustomerId" Type="int" Nullable="false" />
     <Property Name="Name" Type="nvarchar(max)" Nullable="false" />
   </EntityType>
   <EntityType Name="Orders" xmlns:c="http://CustomNamespace">
     <Key>
       <PropertyRef Name="OrderId" />
     </Key>
     <Property Name="OrderId" Type="int" Nullable="false"
               c:CustomAttribute="someValue"/>
     <Property Name="ProductId" Type="int" Nullable="false" />
     <Property Name="Quantity" Type="int" Nullable="false" />
     <Property Name="CustomerId" Type="int" Nullable="false" />
     <c:CustomElement>
       Custom data here.
     </c:CustomElement>
   </EntityType>
   <Association Name="FK_CustomerOrders">
     <End Role="Customers"
          Type="ExampleModel.Store.Customers" Multiplicity="1">
       <OnDelete Action="Cascade" />
     </End>
     <End Role="Orders"
          Type="ExampleModel.Store.Orders" Multiplicity="*" />
     <ReferentialConstraint>
       <Principal Role="Customers">
         <PropertyRef Name="CustomerId" />
       </Principal>
       <Dependent Role="Orders">
         <PropertyRef Name="CustomerId" />
       </Dependent>
     </ReferentialConstraint>
   </Association>
   <Function Name="UpdateOrderQuantity"
             Aggregate="false"
             BuiltIn="false"
             NiladicFunction="false"
             IsComposable="false"
             ParameterTypeSemantics="AllowImplicitConversion"
             Schema="dbo">
     <Parameter Name="orderId" Type="int" Mode="In" />
     <Parameter Name="newQuantity" Type="int" Mode="In" />
   </Function>
   <Function Name="UpdateProductInOrder" IsComposable="false">
     <CommandText>
       UPDATE Orders
       SET ProductId = @productId
       WHERE OrderId = @orderId;
     </CommandText>
     <Parameter Name="productId"
                Mode="In"
                Type="int"/>
     <Parameter Name="orderId"
                Mode="In"
                Type="int"/>
   </Function>
 </Schema>

AnmerkungsattributeAnnotation Attributes

Anmerkungsattribute sind in der Datenspeicherschema-Definitionssprache (Store Schema Definition Language, SSDL) benutzerdefinierte XML-Attribute im Speichermodell, die zusätzliche Metadaten zu den Elementen im Speichermodell bereitstellen.Annotation attributes in store schema definition language (SSDL) are custom XML attributes in the storage model that provide extra metadata about the elements in the storage model. Neben dem Vorhandensein einer gültigen XML-Struktur gelten für Anmerkungsattribute folgende Einschränkungen:In addition to having valid XML structure, the following constraints apply to annotation attributes:

  • Anmerkungsattribute dürfen sich in keinem XML-Namespace befinden, der für SSDL reserviert ist.Annotation attributes must not be in any XML namespace that is reserved for SSDL.
  • Die vollqualifizierten Namen zweier Anmerkungsattribute dürfen nicht übereinstimmen.The fully-qualified names of any two annotation attributes must not be the same.

Für ein angegebenes SSDL-Element kann mehr als ein Anmerkungsattribut übernommen werden.More than one annotation attribute may be applied to a given SSDL element. Auf Metadaten, die in Anmerkung-Elementen enthalten sind, kann zur Laufzeit mithilfe von Klassen im System. Data. Metadata. Edm-Namespace zugegriffen werden.Metadata contained in annotation elements can be accessed at runtime by using classes in the System.Data.Metadata.Edm namespace.

BeispielExample

Das folgende Beispiel zeigt ein EntityType-Element, das über ein Anmerkung-Attribut verfügt, das auf die OrderID -Eigenschaft angewendet wird.The following example shows an EntityType element that has an annotation attribute applied to the OrderId property. Das Beispiel zeigt auch ein Anmerkung-Element, das dem EntityType -Element hinzugefügt wurde.The example also show an annotation element added to the EntityType element.

 <EntityType Name="Orders" xmlns:c="http://CustomNamespace">
   <Key>
     <PropertyRef Name="OrderId" />
   </Key>
   <Property Name="OrderId" Type="int" Nullable="false"
             c:CustomAttribute="someValue"/>
   <Property Name="ProductId" Type="int" Nullable="false" />
   <Property Name="Quantity" Type="int" Nullable="false" />
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <c:CustomElement>
     Custom data here.
   </c:CustomElement>
 </EntityType>

Anmerkungelemente (SSDL)Annotation Elements (SSDL)

Anmerkungselemente sind in der Datenspeicherschema-Definitionssprache (Store Schema Definition Language, SSDL) benutzerdefinierte XML-Elemente im Speichermodell, die zusätzliche Metadaten zum Speichermodell bereitstellen.Annotation elements in store schema definition language (SSDL) are custom XML elements in the storage model that provide extra metadata about the storage model. Neben dem Vorhandensein einer gültigen XML-Struktur gelten für Anmerkungselemente folgende Einschränkungen:In addition to having valid XML structure, the following constraints apply to annotation elements:

  • Anmerkungselemente dürfen sich in keinem XML-Namespace befinden, der für SSDL reserviert ist.Annotation elements must not be in any XML namespace that is reserved for SSDL.
  • Die vollqualifizierten Namen zweier Anmerkungselemente dürfen nicht übereinstimmen.The fully-qualified names of any two annotation elements must not be the same.
  • Anmerkungselemente müssen nach allen anderen untergeordneten Elementen eines angegebenen SSDL-Elements angeordnet werden.Annotation elements must appear after all other child elements of a given SSDL element.

Mehrere Anmerkungselemente können untergeordnete Elemente eines angegebenen SSDL-Elements sein.More than one annotation element may be a child of a given SSDL element. Ab Version 4 von .NET Framework können mithilfe von Klassen im Namespace "System. Data. Metadata. Edm" zur Laufzeit auf Metadaten zugegriffen werden, die in Anmerkung-Elementen enthalten sind.Starting with the .NET Framework version 4, metadata contained in annotation elements can be accessed at runtime by using classes in the System.Data.Metadata.Edm namespace.

BeispielExample

Das folgende Beispiel zeigt ein EntityType-Element, das über ein Anmerkung-Element (customelement) verfügt.The following example shows an EntityType element that has an annotation element (CustomElement). Das Beispiel zeigt auch ein Anmerkung-Attribut, das auf die OrderID -Eigenschaft angewendet wird.The example also shows an annotation attribute applied to the OrderId property.

 <EntityType Name="Orders" xmlns:c="http://CustomNamespace">
   <Key>
     <PropertyRef Name="OrderId" />
   </Key>
   <Property Name="OrderId" Type="int" Nullable="false"
             c:CustomAttribute="someValue"/>
   <Property Name="ProductId" Type="int" Nullable="false" />
   <Property Name="Quantity" Type="int" Nullable="false" />
   <Property Name="CustomerId" Type="int" Nullable="false" />
   <c:CustomElement>
     Custom data here.
   </c:CustomElement>
 </EntityType>

Facets (SSDL)Facets (SSDL)

Facets stellen in der Datenspeicherschema-Definitionssprache (Store Schema Definition Language, SSDL) Einschränkungen für Spaltentypen dar, die in Eigenschaftenelementen angegeben werden.Facets in store schema definition language (SSDL) represent constraints on column types that are specified in Property elements. Facetten werden als XML-Attribute für Eigenschaften Elemente implementiert.Facets are implemented as XML attributes on Property elements.

In der folgenden Tabelle werden die in SSDL unterstützten Facets beschrieben:The following table describes the facets that are supported in SSDL:

FacetFacet BESCHREIBUNGDescription
SortierungCollation Gibt die bei Vergleich- und Sortiervorgängen zu verwendende Sortierreihenfolge für die Werte der Eigenschaft an.Specifies the collating sequence (or sorting sequence) to be used when performing comparison and ordering operations on values of the property.
FixedLengthFixedLength Gibt an, ob sich die Länge des Spaltenwerts ändern kann.Specifies whether the length of the column value can vary.
MaxLengthMaxLength Gibt die maximale Länge des Spaltenwerts an.Specifies the maximum length of the column value.
GenauigkeitPrecision Gibt bei Eigenschaften vom Typ Decimaldie Anzahl der Ziffern an, die ein Eigenschafts Wert aufweisen kann.For properties of type Decimal, specifies the number of digits a property value can have. Bei Eigenschaften vom Typ time, DateTimeund DateTimeOffsetwird die Anzahl von Ziffern für die Sekundenbruchteile des Spaltenwerts angegeben.For properties of type Time, DateTime, and DateTimeOffset, specifies the number of digits for the fractional part of seconds of the column value.
SkalierungScale Gibt die Anzahl der Dezimalstellen für den Spaltenwert an.Specifies the number of digits to the right of the decimal point for the column value.
UnicodeUnicode Gibt an, ob der Spaltenwert als Unicode gespeichert wird.Indicates whether the column value is stored as Unicode.