Definizioni dei tipi (Entity SQL)Type Definitions (Entity SQL)

Una definizione del tipo viene usata nell'istruzione per la dichiarazione di una funzione inline Entity SQLEntity SQL.A type definition is used in the declaration statement of an Entity SQLEntity SQL Inline function.

NoteRemarks

L'istruzione di dichiarazione per una funzione inline è costituito il funzione parola chiave seguita da un identificatore che rappresenta il nome della funzione (ad esempio, "MyAvg") seguito da un elenco di definizioni di parametro tra parentesi (per esempio, "dues Collection(Decimal)").The declaration statement for an inline function consists of the FUNCTION keyword followed by the identifier representing the function name (for example, "MyAvg") followed by a parameter definition list in parenthesis (for example, "dues Collection(Decimal)").

L'elenco di definizioni dei parametri è costituito da zero o più definizioni di parametri.The parameter definition list consists of zero or more parameter definitions. Ogni definizione di parametro consiste di un identificatore (il nome del parametro alla funzione, ad esempio, "dues") seguito da una definizione del tipo (ad esempio, "Collection(Decimal)").Each parameter definition consists of an identifier (the name of the parameter to the function, for example, "dues") followed by a type definition (for example, "Collection(Decimal)").

Le definizioni del tipo possono essere:The type definitions can be either:

  • Il tipo dell'identificatore (ad esempio, "Int32" o "AdventureWorks.Order").The type of the identifier (for example, "Int32" or "AdventureWorks.Order").

  • La parola chiave COLLECTION seguita da un'altra definizione del tipo tra parentesi (ad esempio "Collection(AdventureWorks.Order)").The keyword COLLECTION followed by another type definition in parenthesis (for example, "Collection(AdventureWorks.Order)").

  • La parola chiave ROW seguita da un elenco di definizioni di proprietà tra parentesi (ad esempio "Row(x AdventureWorks.Order)").The keyword ROW followed by a list of property definitions in parenthesis (for example, "Row(x AdventureWorks.Order)"). Le definizioni di proprietà hanno un formato, ad esempio "identifier type_definition, identifier type_definition,...".Property definitions have a format such as "identifier type_definition, identifier type_definition, ...".

  • La parola chiave REF seguita dal tipo dell'identificatore tra parentesi (ad esempio "Ref(AdventureWorks.Order)").The keyword REF followed by the type of the identifier in parenthesis (for example, "Ref(AdventureWorks.Order)"). L'operatore della definizione del tipo Ref richiede un tipo di entità come argomento.The REF type definition operator requires an entity type as the argument. Non è possibile specificare un tipo primitivo come argomento.You cannot specify a primitive type as the argument.

È inoltre possibile annidare definizioni del tipo (ad esempio "Collection(Row(x Ref(AdventureWorks.Order)))").You can also nest type definitions (for example, "Collection(Row(x Ref(AdventureWorks.Order)))").

Le opzioni di definizione del tipo sono:The type definition options are:

  • IdentifierName supported_type oIdentifierName supported_type, or

  • IdentifierName COLLECTION(type_definition) oIdentifierName COLLECTION(type_definition), or

  • IdentifierName ROW(property_definition) oIdentifierName ROW(property_definition), or

  • IdentifierName REF(supported_entity_type)IdentifierName REF(supported_entity_type)

L'opzione di definizione delle proprietà è IdentifierName type_definition.The property definition option is IdentifierName type_definition.

I tipi supportati sono qualsiasi tipo nello spazio dei nomi corrente.Supported types are any types in the current namespace. Questi includono sia i tipi primitivi che i tipi di entità.These include both primitive and entity types.

Tipi di entità supportati si riferiscono solo a tipi di entità nello spazio dei nomi corrente.Supported entity types refer to only entity types in the current namespace. Non includono i tipi primitivi.They do not include primitive types.

EsempiExamples

Di seguito è riportato un esempio di definizione del tipo semplice.The following is an example of a simple type definition.

USING Microsoft.Samples.Entity  
Function MyRound(p1 EDM.Decimal) AS (  
   Round(p1)  
)  
MyRound(CAST(1.7 as EDM.Decimal))  

Di seguito è riportato un esempio di definizione del tipo COLLECTION.The following is an example of a COLLECTION type definition.

USING Microsoft.Samples.Entity  
Function MyRound(p1 Collection(EDM.Decimal)) AS (  
   Select Round(p1) from p1  
)  
MyRound({CAST(1.7 as EDM.Decimal), CAST(2.7 as EDM.Decimal)})  

Di seguito è riportato un esempio di definizione del tipo ROW.The following is an example of a ROW type definition.

USING Microsoft.Samples.Entity  
Function MyRound(p1 Row(x EDM.Decimal)) AS (  
   Round(p1.x)  
)  
select MyRound(row(a as x)) from {CAST(1.7 as EDM.Decimal), CAST(2.7 as EDM.Decimal)} as a  

Di seguito è riportato un esempio di definizione del tipo REF.The following is an example of a REF type definition.

USING Microsoft.Samples.Entity  
Function UnReference(p1 Ref(AdventureWorks.Order)) AS (  
   Deref(p1)  
)  
select Ref(x) from AdventureWorksEntities.SalesOrderHeaders as x  

Vedere ancheSee Also

Panoramica di Entity SQLEntity SQL Overview
Riferimento a Entity SQLEntity SQL Reference