Specifikace SSDL

Store schema definition language (SSDL) je jazyk založený na jazyce XML, který popisuje model úložiště aplikace Entity Framework.

V aplikaci Entity Framework se metadata modelu úložiště načítají ze souboru .ssdl (napsaného v SSDL) do instance System.Data.Metadata.Edm.StoreItemCollection a jsou přístupná pomocí metod ve třídě System.Data.Metadata.Edm.MetadataWorkspace. Entity Framework používá metadata modelu úložiště k překladu dotazů na koncepční model k ukládání příkazů specifických pro konkrétní příkazy.

Návrhář Entity Framework (EF Designer) ukládá informace o modelu úložiště v souboru .edmx v době návrhu. V době sestavení Návrhář entity používá informace v souboru .edmx k vytvoření souboru .ssdl, který vyžaduje Entity Framework za běhu.

Verze SSDL jsou diferencované obory názvů XML.

Verze SSDL Obor názvů XML
SSDL v1 https://schemas.microsoft.com/ado/2006/04/edm/ssdl
SSDL v2 https://schemas.microsoft.com/ado/2009/02/edm/ssdl
SSDL v3 https://schemas.microsoft.com/ado/2009/11/edm/ssdl

Association – element (SSDL)

Element Association v jazyce pro definici schématu úložiště (SSDL) určuje sloupce tabulky, které se účastní omezení cizího klíče v podkladové databázi. Dva požadované podřízené koncové prvky určují tabulky na konci přidružení a násobnost na každém konci. Volitelný element ReferentialConstraint určuje hlavní a závislé konce přidružení a také zúčastněné sloupce. Pokud není k dispozici žádný ReferentialConstraint element, associationSetMapping element musí být použit k určení mapování sloupců pro přidružení.

Prvek Association může mít následující podřízené prvky (v uvedeném pořadí):

  • Dokumentace (nula nebo jedna)
  • End (přesně dva)
  • ReferentialConstraint (nula nebo jedna)
  • Prvky poznámek (nula nebo více)

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít pro Association element.

Název atributu Je povinné Hodnota
Název Ano Název odpovídajícího omezení cizího klíče v podkladové databázi.

Poznámka

U elementu Association lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje Association element, který používá ReferentialConstraint element k určení sloupců, které se účastní omezení FK_CustomerOrders cizího klíče:

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

Element AssociationSet v jazyce DEFINICE schématu úložiště (SSDL) představuje omezení cizího klíče mezi dvěma tabulkami v podkladové databázi. Sloupce tabulky, které se účastní omezení cizího klíče, jsou určeny v elementu Association. Association element, který odpovídá danému AssociationSet elementu je určen v Association atributu AssociationSet Element.

Sady přidružení SSDL se mapují na sady přidružení CSDL elementem AssociationSetMapping. Pokud je však asociace CSDL pro danou sadu přidružení CSDL definována pomocí ReferentialConstraint element , není nutné žádný odpovídající AssociationSetMapping element. V tomto případě, pokud associationSetMapping element je přítomna, mapování, které definuje, bude přepsána ReferentialConstraint element.

Element AssociationSet může mít následující podřízené prvky (v uvedeném pořadí):

  • Dokumentace (nula nebo jedna)
  • Konec (nula nebo dvě)
  • Prvky poznámek (nula nebo více)

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít pro AssociationSet element.

Název atributu Je povinné Hodnota
Název Ano Název omezení cizího klíče, které sada přidružení představuje.
Přidružení Ano Název přidružení, který definuje sloupce, které se účastní omezení cizího klíče.

Poznámka

U elementu AssociationSet lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje AssociationSet element, který představuje omezení cizího FK_CustomerOrders klíče v podkladové databázi:

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

CollectionType – element (SSDL)

Element CollectionType v jazyce DEFINICE schématu úložiště (SSDL) určuje, že návratový typ funkce je kolekce. CollectionType element je podřízená ReturnType elementu. Typ kolekce je určen pomocí podřízeného elementu RowType:

Poznámka

U elementu CollectionType lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje funkci, která používá CollectionType element určit, že funkce vrací kolekci řádků.

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

Element CommandText v jazyce definice schématu úložiště (SSDL) je podřízený prvek function element, který umožňuje definovat příkaz SQL, který se spouští v databázi. CommandText element umožňuje přidat funkce, které jsou podobné uložené procedury v databázi, ale definujete CommandText element v modelu úložiště.

Element CommandText nemůže obsahovat podřízené elementy. Text elementu CommandText musí být platným příkazem SQL pro podkladovou databázi.

Pro element CommandText nejsou použitelné žádné atributy.

Příklad

Následující příklad ukazuje Function element s podřízeným CommandText element. Zpřístupňte funkci UpdateProductInOrder jako metodu objectContext tak, že ji naimportujete do konceptuálního modelu.  

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

Definování elementuQuery (SSDL)

Element DefiningQuery v jazyce SSDL (Store Schema Definition Language) umožňuje spustit příkaz SQL přímo v podkladové databázi. Element DefinedQuery se běžně používá jako zobrazení databáze, ale zobrazení je definováno v modelu úložiště místo databáze. Zobrazení definované v elementu DefinedQuery lze mapovat na typ entity v konceptuálním modelu prostřednictvím elementu EntitySetMapping. Tato mapování jsou jen pro čtení.  

Následující syntaxe SSDL ukazuje deklaraci EntitySet následovanou elementem DefiningQuery , který obsahuje dotaz použitý k načtení zobrazení.

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

Uložené procedury v rozhraní Entity Framework můžete použít k povolení scénářů čtení a zápisu v zobrazeních. Jako základní tabulku pro načítání dat a ke zpracování změn uloženými procedurami můžete použít zobrazení zdroje dat nebo zobrazení Entity SQL.

K cílení na Microsoft SQL Server Compact 3.5 můžete použít element DefiningQuery . I když SQL Server Compact 3.5 nepodporuje uložené procedury, můžete implementovat podobné funkce s DefiningQuery element. Dalším místem, kde může být užitečné, je vytváření uložených procedur k překonání neshody mezi datovými typy používanými v programovacím jazyce a zdroji dat. Můžete napsat DefiniciQuery, která vezme určitou sadu parametrů a potom zavolá uloženou proceduru s jinou sadou parametrů, například uloženou proceduru, která odstraní data.

Závislý element (SSDL)

Závislý prvek v jazyce definice schématu úložiště (SSDL) je podřízený prvek referentialConstraint element, který definuje závislý konec omezení cizího klíče (označuje se také jako referenční omezení). Závislý prvek určuje sloupec (nebo sloupce) v tabulce, který odkazuje na sloupec primárního klíče (nebo sloupce). Elementy PropertyRef určují, na které sloupce se odkazují. Element Principal určuje sloupce primárního klíče, na které odkazují sloupce, které jsou zadány v závislém prvku.

Závislý prvek může mít následující podřízené prvky (v uvedeném pořadí):

  • PropertyRef (jeden nebo více)
  • Prvky poznámek (nula nebo více)

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít pro závislý prvek.

Název atributu Je povinné Hodnota
Role Ano Stejná hodnota jako atribut Role (pokud se používá) odpovídajícího koncového prvku, jinak název tabulky, která obsahuje odkazující sloupec.

Poznámka

U závislého prvku lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro CSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje Association element, který používá ReferentialConstraint element určit sloupce, které se účastní FK_CustomerOrders omezení cizího klíče. Závislý prvek určuje sloupec CustomerId tabulky Order jako závislý konec omezení.

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

Element dokumentace (SSDL)

Element Dokumentace v jazyce SSDL (Store Schema Definition Language) lze použít k poskytnutí informací o objektu, který je definován v nadřazený element.

Prvek dokumentace může mít následující podřízené prvky (v uvedeném pořadí):

  • Shrnutí: Stručný popis nadřazeného prvku. (nula nebo jeden prvek)
  • LongDescription: Rozsáhlý popis nadřazeného prvku. (nula nebo jeden prvek)

Použitelné atributy

U elementu Documentation lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro CSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje Element Documentation jako podřízený prvek EntityType elementu.

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

Koncový prvek v jazyce PRO definici schématu úložiště (SSDL) určuje tabulku a počet řádků na jednom konci omezení cizího klíče v podkladové databázi. End element může být podřízený prvek Association element nebo AssociationSet element. V každém případě se možné podřízené prvky a příslušné atributy liší.

End – element jako podřízený prvek association

Koncový element (jako podřízený prvek Association) určuje tabulku a počet řádků na konci omezení cizího klíče s atributy Type a Multiplicity v uvedeném pořadí. Konce omezení cizího klíče jsou definovány jako součást přidružení SSDL; Přidružení SSDL musí mít přesně dva konce.

Koncový prvek může mít následující podřízené prvky (v uvedeném pořadí):

  • Dokumentace (nula nebo jeden prvek)
  • OnDelete (nula nebo jeden prvek)
  • Prvky poznámek (nula nebo více prvků)

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít u end elementu, když je podřízeným prvkem Association.

Název atributu Je povinné Hodnota
Typ Ano Plně kvalifikovaný název sady entit SSDL, který je na konci omezení cizího klíče.
Role Číslo Hodnota atributu Role v objektu Principal nebo Dependent element odpovídajícíHo ReferentialConstraint elementu (pokud je použit).
Násobnost Ano 1, 0..1 nebo * v závislosti na počtu řádků, které mohou být na konci omezení cizího klíče.
1 označuje, že přesně jeden řádek existuje na konci omezení cizího klíče.
0..1 označuje, že na konci omezení cizího klíče existuje nula nebo jeden řádek.
* označuje, že na konci omezení cizího klíče existuje nula, jeden nebo více řádků.

Poznámka

U elementu End lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro CSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje Association element, který definuje FK_CustomerOrders omezení cizího klíče. Hodnoty násobnosti zadané pro každý koncový prvek označují, že mnoho řádků v tabulce Objednávky může být přidruženo k řádku v tabulce Zákazníci , ale pouze jeden řádek v tabulce Zákazníci lze přidružit k řádku v tabulce Objednávky . Kromě toho prvek OnDelete označuje, že všechny řádky v tabulce Orders, které odkazují na konkrétní řádek v tabulce Customers, budou odstraněny, pokud je řádek v tabulce Customers odstraněn.

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

End – element jako podřízený prvek AssociationSet

End element (jako podřízený prvek AssociationSet) určuje tabulku na jednom konci omezení cizího klíče v podkladové databázi.

Koncový prvek může mít následující podřízené prvky (v uvedeném pořadí):

  • Dokumentace (nula nebo jedna)
  • Prvky poznámek (nula nebo více)

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít u end elementu, když je podřízeným prvkem AssociationSet.

Název atributu Je povinné Hodnota
Entityset Ano Název sady entit SSDL, která je na konci omezení cizího klíče.
Role Číslo Hodnota jednoho z atributů role zadaných u jednoho koncového prvku odpovídajícího elementu Association.

Poznámka

U elementu End lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro CSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje EntityContainer element s AssociationSet elementu se dvěma End elementy:

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

Element EntityContainer v jazyce SSDL (Store Schema Definition Language) popisuje strukturu podkladového zdroje dat v aplikaci Entity Framework: Sady entit SSDL (definované v elementech EntitySet) představují tabulky v databázi, typy entit SSDL (definované v elementech EntityType) představují řádky v tabulce a sady přidružení (definované v elementech AssociationSet) představují omezení cizího klíče v databázi. Kontejner entit modelu úložiště se mapuje na kontejner entity konceptu modelu prostřednictvím elementu EntityContainerMapping.

Element EntityContainer může mít nula nebo jeden prvek dokumentace. Pokud existuje prvek dokumentace, musí předcházet všem ostatním podřízeným prvkům.

Element EntityContainer může mít nula nebo více následujících podřízených elementů (v uvedeném pořadí):

  • Entityset
  • Sada přidružení
  • Prvky poznámek

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít pro EntityContainer element.

Název atributu Je povinné Hodnota
Název Ano Název kontejneru entity. Tento název nesmí obsahovat tečky (.).

Poznámka

U elementu EntityContainer lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje EntityContainer element, který definuje dvě sady entit a jednu sadu přidružení. Všimněte si, že názvy typů entit a typů přidružení jsou kvalifikované názvem konceptuálního oboru názvů modelu.

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

Element EntitySet v jazyce SSDL (Store Schema Definition Language) představuje tabulku nebo zobrazení v podkladové databázi. Element EntityType v SSDL představuje řádek v tabulce nebo zobrazení. Atribut EntityType elementu EntitySet určuje konkrétní typ entity SSDL, který představuje řádky v sadě entit SSDL. Mapování mezi sadou entit CSDL a sadou entit SSDL je zadané v elementu EntitySetMapping.

Element EntitySet může mít následující podřízené elementy (v uvedeném pořadí):

  • Dokumentace (nula nebo jeden prvek)
  • DefiningQuery (nula nebo jeden prvek)
  • Prvky poznámek

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít u elementu EntitySet .

Poznámka

Některé atributy (zde uvedené nejsou) mohou být kvalifikované pomocí aliasu úložiště . Tyto atributy používá Průvodce aktualizací modelu při aktualizaci modelu.

Název atributu Je povinné Hodnota
Název Ano Název sady entit.
EntityType Ano Plně kvalifikovaný název typu entity, pro který sada entit obsahuje instance.
Schéma Číslo Schéma databáze.
Tabulka Číslo Tabulka databáze.

Poznámka

U elementu EntitySet lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje EntityContainer element, který má dva EntitySet element a jeden 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)

Element EntityType v jazyce PRO definici schématu úložiště (SSDL) představuje řádek v tabulce nebo zobrazení podkladové databáze. Element EntitySet v SSDL představuje tabulku nebo zobrazení, ve kterém dochází k řádkům. Atribut EntityType elementu EntitySet určuje konkrétní typ entity SSDL, který představuje řádky v sadě entit SSDL. Mapování mezi typem entity SSDL a typem entity CSDL je zadané v elementu EntityTypeMapping.

Element EntityType může mít následující podřízené elementy (v uvedeném pořadí):

  • Dokumentace (nula nebo jeden prvek)
  • Klíč (nula nebo jeden prvek)
  • Prvky poznámek

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít u elementu EntityType .

Název atributu Je povinné Hodnota
Název Ano Název typu entity. Tato hodnota je obvykle stejná jako název tabulky, ve které typ entity představuje řádek. Tato hodnota nesmí obsahovat žádná tečka (.).

Poznámka

U elementu EntityType lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje Element EntityType se dvěma vlastnostmi:

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

Prvek funkce v jazyce pro definici schématu úložiště (SSDL) určuje uloženou proceduru, která existuje v podkladové databázi.

Prvek Function může mít následující podřízené prvky (v uvedeném pořadí):

  • Dokumentace (nula nebo jedna)
  • Parametr (nula nebo více)
  • CommandText (nula nebo jedna)
  • ReturnType (nula nebo více)
  • Prvky poznámek (nula nebo více)

Návratový typ funkce musí být zadán buď pomocí returnType elementu nebo ReturnType atributu (viz níže), ale ne obojí.

Uložené procedury zadané v modelu úložiště je možné importovat do konceptuálního modelu aplikace. Další informace naleznete v tématu Dotazování pomocí uložených procedur. Prvek Function lze také použít k definování vlastních funkcí v modelu úložiště.  

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít pro prvek Function .

Poznámka

Některé atributy (zde uvedené nejsou) mohou být kvalifikované pomocí aliasu úložiště . Tyto atributy používá Průvodce aktualizací modelu při aktualizaci modelu.

Název atributu Je povinné Hodnota
Název Ano Název uložené procedury.
Returntype Číslo Návratový typ uložené procedury.
Agregovat Číslo True , pokud uložená procedura vrátí agregovanou hodnotu; jinak False.
Builtin Číslo True , pokud je funkce integrovanáfunkce 1 ; jinak False.
StoreFunctionName Číslo Název uložené procedury.
NiladicFunction Číslo True , pokud je funkce niladic2 funkce; Jinak je false .
IsComposable Číslo True , pokud je funkce kompozovatelná3 funkce; Jinak je false .
ParametrTypeSemantics Číslo Výčet, který definuje sémantiku typu použitou k vyřešení přetížení funkce. Výčet je definován v manifestu zprostředkovatele na definici funkce. Výchozí hodnota je AllowImplicitConversion.
Schéma Číslo Název schématu, ve kterém je uložená procedura definována.

1 Integrovaná funkce je funkce definovaná v databázi. Informace o funkcích definovaných v modelu úložiště najdete v tématu CommandText – element (SSDL).

2 Niladická funkce je funkce, která nepřijímá žádné parametry a při zavolání nevyžaduje závorky.

3 Dvě funkce jsou kompozibilní, pokud výstupem jedné funkce může být vstup druhé funkce.

Poznámka

U elementu Function lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje Function element, který odpovídá UpdateOrderQuantity uložená procedura. Uložená procedura přijímá dva parametry a nevrací hodnotu.

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

Element Key v jazyce definice schématu úložiště (SSDL) představuje primární klíč tabulky v podkladové databázi. Klíč je podřízený prvek EntityType elementu, který představuje řádek v tabulce. Primární klíč je definován v elementu Key odkazem na jeden nebo více elementů Property, které jsou definovány v Element EntityType .

Element Key může mít následující podřízené prvky (v uvedeném pořadí):

  • PropertyRef (jeden nebo více)
  • Prvky poznámek

Pro prvek Key nejsou použitelné žádné atributy.

Příklad

Následující příklad ukazuje Element EntityType s klíčem, který odkazuje na jednu vlastnost:

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

Element OnDelete v jazyce SSDL (Store Schema Definition Language) odráží chování databáze při odstranění řádku, který se účastní omezení cizího klíče. Pokud je akce nastavená na Kaskádová, odstraní se také řádky, které odkazují na odstraněný řádek. Pokud je akce nastavena na Žádné, řádky, které odkazují na odstraněný řádek, se také neodstraní. OnDelete element je podřízený prvek End elementu.

Element OnDelete může mít následující podřízené prvky (v uvedeném pořadí):

  • Dokumentace (nula nebo jedna)
  • Prvky poznámek (nula nebo více)

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít pro OnDelete element.

Název atributu Je povinné Hodnota
Akce Ano Kaskádová nebo žádná. (Hodnota Omezení je platné, ale má stejné chování jako None.)

Poznámka

U elementu OnDelete lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje Association element, který definuje FK_CustomerOrders omezení cizího klíče. OnDelete element označuje, že všechny řádky v tabulce Orders, které odkazují na konkrétní řádek v tabulce Customers, budou odstraněny, pokud je řádek v tabulce Customers odstraněn.

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

Parametr – element (SSDL)

Element Parameter v jazyce pro definici schématu úložiště (SSDL) je podřízený prvek funkce, který určuje parametry pro uloženou proceduru v databázi.

Element Parameter může mít následující podřízené prvky (v uvedeném pořadí):

  • Dokumentace (nula nebo jedna)
  • Prvky poznámek (nula nebo více)

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít pro element Parameter .

Název atributu Je povinné Hodnota
Název Ano Název parametru
Typ Ano Typ parametru.
Režimu Číslo In, Out nebo InOut v závislosti na tom, zda je parametr vstupní, výstupní nebo vstupní/výstupní parametr.
Maxlength Číslo Maximální délka parametru.
Přesnost Číslo Přesnost parametru.
Měřítko Číslo Měřítko parametru.
SRID Číslo Referenční identifikátor prostorového systému Platné pouze pro parametry prostorových typů. Další informace naleznete v tématu SRID a SRID (SQL Server).

Poznámka

U elementu Parameter lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje function element, který má dva elementy Parameter , které určují vstupní parametry:

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

Principal – element (SSDL)

Element Principal v jazyce pro definici schématu úložiště (SSDL) je podřízený prvek elementu ReferentialConstraint, který definuje hlavní konec omezení cizího klíče (označuje se také jako referenční omezení). Element Principal určuje sloupec primárního klíče (nebo sloupce) v tabulce, na který odkazuje jiný sloupec (nebo sloupce). Elementy PropertyRef určují, na které sloupce se odkazují. Závislý prvek určuje sloupce, které odkazují na sloupce primárního klíče zadané v elementu Principal .

Element Principal může mít následující podřízené prvky (v uvedeném pořadí):

  • PropertyRef (jeden nebo více)
  • Prvky poznámek (nula nebo více)

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít u elementu Principal .

Název atributu Je povinné Hodnota
Role Ano Stejná hodnota jako atribut Role (pokud se používá) odpovídajícího koncového prvku; jinak název tabulky, která obsahuje odkazovaný sloupec.

Poznámka

U elementu Principal lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro CSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje Association element, který používá ReferentialConstraint element určit sloupce, které se účastní FK_CustomerOrders omezení cizího klíče. Element Principal určuje sloupec CustomerId tabulky Customer jako konec omezení.

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

Element vlastnosti (SSDL)

Element Property v jazyce definice schématu úložiště (SSDL) představuje sloupec v tabulce v podkladové databázi. Elementy vlastností jsou podřízené elementy EntityType, které představují řádky v tabulce. Každý element Property definovaný u elementu EntityType představuje sloupec.

Element Property nemůže obsahovat žádné podřízené prvky.

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít u elementu Property .

Název atributu Je povinné Hodnota
Název Ano Název odpovídajícího sloupce
Typ Ano Typ odpovídajícího sloupce.
Nullable Číslo Pravda (výchozí hodnota) nebo False v závislosti na tom, jestli odpovídající sloupec může mít hodnotu null.
Defaultvalue Číslo Výchozí hodnota odpovídajícího sloupce.
Maxlength Číslo Maximální délka odpovídajícího sloupce.
Pevná délka Číslo Pravda nebo Nepravda v závislosti na tom, jestli se odpovídající hodnota sloupce uloží jako řetězec s pevnou délkou.
Přesnost Číslo Přesnost odpovídajícího sloupce.
Měřítko Číslo Měřítko odpovídajícího sloupce
Unicode Číslo Pravda nebo Nepravda v závislosti na tom, jestli bude odpovídající hodnota sloupce uložena jako řetězec Unicode.
Kolace Číslo Řetězec, který určuje kompletující sekvenci, která se má použít ve zdroji dat.
SRID Číslo Referenční identifikátor prostorového systému Platné pouze pro vlastnosti prostorových typů. Další informace naleznete v tématu SRID a SRID (SQL Server).
StoreGeneratedPattern Číslo Žádná, Identita (pokud je odpovídající hodnota sloupce identita vygenerovaná v databázi) nebo Vypočítaná (pokud je v databázi vypočítaná odpovídající hodnota sloupce). Není platné pro vlastnosti RowType.

Poznámka

U elementu Property lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje Element EntityType se dvěma podřízenými elementy 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>

PropertyRef – element (SSDL)

Element PropertyRef v jazyce PRO definici schématu (SSDL) odkazuje na vlastnost definovanou v elementu EntityType, která indikuje, že vlastnost bude provádět jednu z následujících rolí:

  • Buďte součástí primárního klíče tabulky, kterou EntityType představuje. Jeden nebo více elementů PropertyRef lze použít k definování primárního klíče. Další informace naleznete v tématu Klíčové elementy.
  • Být závislým nebo hlavním koncem referenčního omezení. Další informace naleznete v tématu ReferentialConstraint element.

Element PropertyRef může mít pouze následující podřízené prvky:

  • Dokumentace (nula nebo jedna)
  • Prvky poznámek

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít pro PropertyRef element.

Název atributu Je povinné Hodnota
Název Ano Název odkazované vlastnosti.

Poznámka

U elementu PropertyRef lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro CSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje PropertyRef element, který slouží k definování primárního klíče odkazem na vlastnost, která je definována v EntityType elementu.

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

Element ReferentialConstraint v jazyce SSDL (Store Schema Definition Language) představuje omezení cizího klíče (označované také jako omezení referenční integrity) v podkladové databázi. Hlavní a závislé konce omezení jsou určeny hlavními a závislými podřízenými prvky v uvedeném pořadí. Sloupce, které se účastní instančního objektu a závislé konce, se odkazují na elementy PropertyRef.

ReferentialConstraint element je volitelný podřízený prvek Association elementu. Pokud referentialConstraint element není použit k mapování omezení cizího klíče, které je zadáno v Element Association, AssociationSetMapping element musí být použit k tomu.

Element ReferentialConstraint může mít následující podřízené prvky:

  • Dokumentace (nula nebo jedna)
  • Objekt zabezpečení (přesně jeden)
  • Závislý (přesně jeden)
  • Prvky poznámek (nula nebo více)

Použitelné atributy

U elementu ReferentialConstraint lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad ukazuje Association element, který používá ReferentialConstraint element k určení sloupců, které se účastní omezení FK_CustomerOrders cizího klíče:

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

Element ReturnType v jazyce SSDL (Store Schema Definition Language) určuje návratový typ funkce, která je definována v elementu Function. Návratový typ funkce lze také zadat pomocí atributu ReturnType .

Návratový typ funkce je určen atributem Type nebo ReturnType element.

Element ReturnType může mít následující podřízené elementy:

  • CollectionType (jeden)

Poznámka

U elementu ReturnType lze použít libovolný počet atributů poznámek (vlastní atributy XML). Vlastní atributy však nemusí patřit do žádného oboru názvů XML, který je vyhrazený pro SSDL. Plně kvalifikované názvy pro všechny dva vlastní atributy nemohou být stejné.

Příklad

Následující příklad používá funkci , která vrací kolekci řádků.

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

Element RowType v jazyce SSDL (Store Schema Definition Language) definuje nepojmenovanou strukturu jako návratový typ pro funkci definovanou v úložišti.

Element RowType je podřízený prvek CollectionType elementu:

Element RowType může mít následující podřízené prvky:

  • Vlastnost (jedna nebo více)

Příklad

Následující příklad ukazuje funkci úložiště, která používá CollectionType element k určení, že funkce vrací kolekci řádků (jak je uvedeno v RowType elementu).

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

Element schématu (SSDL)

Element Schema v jazyce pro definici schématu úložiště (SSDL) je kořenový prvek definice modelu úložiště. Obsahuje definice pro objekty, funkce a kontejnery, které tvoří model úložiště.

Element Schema může obsahovat nula nebo více z následujících podřízených prvků:

  • Přidružení
  • EntityType
  • EntityContainer
  • Function

Element Schema používá atribut Namespace k definování oboru názvů pro typ entity a objekty přidružení v modelu úložiště. V rámci oboru názvů nemohou mít žádné dva objekty stejný název.

Obor názvů modelu úložiště se liší od oboru názvů XML elementu Schema . Obor názvů modelu úložiště (definovaný atributem Obor názvů ) je logický kontejner pro typy entit a typy přidružení. Obor názvů XML (označený atributem xmlns) elementu Schema je výchozí obor názvů pro podřízené elementy a atributy elementu Schema. Obory názvů XML formuláře https://schemas.microsoft.com/ado/YYYY/MM/edm/ssdl (kde YYYYY a MM představují rok a měsíc) jsou vyhrazené pro SSDL. Vlastní prvky a atributy nemohou být v oborech názvů, které mají tento formulář.

Použitelné atributy

Následující tabulka popisuje atributy, které lze použít u elementu Schema .

Název atributu Je povinné Hodnota
Obor názvů Ano Obor názvů modelu úložiště. Hodnota atributu Namespace slouží k vytvoření plně kvalifikovaného názvu typu. Pokud je například EntityType s názvem Customer v oboru názvů ExampleModel.Store, pak plně kvalifikovaný název EntityType je ExampleModel.Store.Customer.
Následující řetězce nelze použít jako hodnotu atributu Namespace : System, Transient nebo Edm. Hodnota atributu Obor názvů nemůže být stejná jako hodnota atributu Namespace v elementu schématu CSDL.
Alias Číslo Identifikátor použitý místo názvu oboru názvů. Pokud je například EntityType s názvem Customer v oboru názvů ExampleModel.Store a hodnota atributu Alias je StorageModel, můžete použít StorageModel.Customer jako plně kvalifikovaný název EntityType.
Zprostředkovatel Ano Zprostředkovatel dat.
ProviderManifestToken Ano Token, který označuje zprostředkovatele, který manifest zprostředkovatele se má vrátit. Není definován žádný formát tokenu. Hodnoty tokenu jsou definovány poskytovatelem. Informace o tokenech manifestu zprostředkovatele SQL Serveru najdete v tématu SqlClient pro Entity Framework.

Příklad

Následující příklad ukazuje Schema element, který obsahuje EntityContainer element, dva EntityType element a jeden 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>

Atributy poznámek

Atributy poznámek v jazyce SSDL (Store Schema Definition Language) jsou vlastní atributy XML v modelu úložiště, které poskytují další metadata o prvcích v modelu úložiště. Kromě platné struktury XML platí pro atributy poznámek následující omezení:

  • Atributy poznámek nesmí být v žádném oboru názvů XML, který je vyhrazený pro SSDL.
  • Plně kvalifikované názvy všech dvou atributů poznámek nesmí být stejné.

U daného prvku SSDL lze použít více než jeden atribut poznámek. K metadatům obsaženým v elementech poznámek lze přistupovat za běhu pomocí tříd v oboru názvů System.Data.Metadata.Edm.

Příklad

Následující příklad ukazuje EntityType element, který má anotační atribut použitý na OrderId vlastnost. Příklad také ukazuje anotační prvek přidaný do EntityType elementu.

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

Prvky poznámek (SSDL)

Elementy poznámek v jazyce SSDL (Store Schema Definition Language) jsou vlastní elementy XML v modelu úložiště, které poskytují další metadata o modelu úložiště. Kromě platné struktury XML platí následující omezení pro prvky poznámek:

  • Prvky poznámek nesmí být v žádném oboru názvů XML, který je vyhrazen pro SSDL.
  • Plně kvalifikované názvy všech dvou prvků poznámek nesmí být stejné.
  • Prvky poznámek musí být uvedeny za všemi ostatními podřízenými prvky daného prvku SSDL.

Více než jeden prvek poznámky může být podřízený daný prvek SSDL. Počínaje rozhraním .NET Framework verze 4 jsou metadata obsažená v elementech poznámek přístupná za běhu pomocí tříd v oboru názvů System.Data.Metadata.Edm.

Příklad

Následující příklad ukazuje EntityType element, který má anotační element (CustomElement). Příklad také ukazuje atribut poznámek použitý na OrderId vlastnost.

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

Omezující vlastnosti (SSDL)

Omezující vlastnosti v jazyce pro definici schématu úložiště (SSDL) představují omezení typů sloupců zadaných v prvcích vlastností. Omezující vlastnosti jsou implementovány jako atributy XML u elementů vlastností .

Následující tabulka popisuje omezující vlastnosti podporované v rozšíření SSDL:

Aspekt Popis
Kolace Určuje kolací sekvenci (nebo pořadí řazení), která se má použít při provádění operací porovnání a řazení hodnot vlastnosti.
Pevná délka Určuje, jestli se délka hodnoty sloupce může lišit.
Maxlength Určuje maximální délku hodnoty sloupce.
Přesnost U vlastností typu Decimal určuje počet číslic, které může mít hodnota vlastnosti. Pro vlastnosti typu Time, DateTime a DateTimeOffset určuje počet číslic pro zlomkovou část sekund hodnoty sloupce.
Měřítko Určuje počet číslic napravo od desetinné čárky pro hodnotu sloupce.
Unicode Určuje, zda je hodnota sloupce uložena jako Unicode.