Compartir a través de


CollectionType (Elemento) (CSDL)

El elemento CollectionType en el lenguaje de definición de esquemas conceptuales (CSDL) especifica que un parámetro de función o el tipo de valor devuelto de la función es una colección. Para obtener más información acerca de las funciones, vea Function (Elemento) (CSDL). El elemento CollectionType puede ser un elemento secundario del elemento Parameter o el elemento ReturnType. El tipo de colección se puede especificar utilizando el atributo ElementType o uno de los siguientes elementos secundarios:

  • CollectionType

  • ReferenceType

  • RowType

  • TypeRef

    Ee476606.note(es-es,VS.100).gifNota:
    Un modelo no se valida si el tipo de una colección se especifica con el atributo ElementType y un elemento secundario.

Atributos aplicables

En la tabla siguiente se explican los atributos que se pueden aplicar al elemento CollectionType. Tenga en cuenta que los atributos DefaultValue, MaxLength, FixedLength, Precision, Scale, Unicode y Collation solo son aplicables a colecciones de EDMSimpleTypes. Para obtener más información, vea Facetas (CSDL) y Tipos de modelos conceptuales.

Nombre de atributo Es necesario Valor

ElementType

No

Tipo de la colección.

Nullable

No

True (el valor predeterminado) o False, dependiendo de si la propiedad puede tener un valor NULL.

Ee476606.note(es-es,VS.100).gifNota:
En la versión de CSDL indicada por el espacio de nombres https://schemas.microsoft.com/ado/2006/04/edm, una propiedad de tipo complejo debe tener Nullable="False".

DefaultValue

No

Valor predeterminado de la propiedad.

MaxLength

No

Longitud máxima del valor de propiedad.

FixedLength

No

True o False dependiendo de si el valor de propiedad se va a almacenar como una cadena de longitud fija.

Precision

No

Precisión del valor de propiedad.

Scale

No

Escala del valor de propiedad.

Unicode

No

True o False dependiendo de si el valor de propiedad se va a almacenar como una cadena Unicode.

Collation

No

Cadena que especifica la secuencia de intercalación que se va a usar en el origen de datos.

Ee476606.note(es-es,VS.100).gifNota:
Se puede aplicar cualquier número de atributos de anotación (atributos XML personalizados) al elemento CollectionType.Sin embargo, es posible que los atributos personalizados no pertenezcan a ningún espacio de nombres XML reservado para CSDL.Dos atributos personalizados cualesquiera no pueden tener nombres completos idénticos.

Ejemplo

En el siguiente ejemplo se muestra una función definida por modelo que utiliza un elemento CollectionType para especificar que la función devuelve una colección de tipos de entidad Person (tal y como se especifica con el atributo ElementType ).

<Function Name="LastNamesAfter">
       <Parameter Name="someString" Type="Edm.String"/>
       <ReturnType>
            <CollectionType  ElementType="SchoolModel.Person"/>
       </ReturnType>
       <DefiningExpression>
            SELECT VALUE p 
            FROM SchoolEntities.People AS p 
            WHERE p.LastName >= someString
       </DefiningExpression>
</Function>

El ejemplo siguiente muestra una función definida por modelo que utiliza un elemento CollectionType para especificar que la función devuelve una recopilación de filas (tal y como se especifica en el elemento RowType ).

<Function Name="LastNamesAfter">
  <Parameter Name="someString" Type="Edm.String" />
  <ReturnType>
   <CollectionType>
     <RowType>
       <Property Name="FirstName" Type="Edm.String" Nullable="false" />
       <Property Name="LastName" Type="Edm.String" Nullable="false" />
     </RowType>
   </CollectionType>
  </ReturnType>
  <DefiningExpression>
            SELECT VALUE ROW(p.FirstName, p.LastName)
            FROM SchoolEntities.People AS p
            WHERE p.LastName &gt;= somestring
  </DefiningExpression>
</Function>

El ejemplo siguiente muestra una función definida por modelo que utiliza el elemento CollectionType para especificar que la función acepta como un parámetro una colección de tipos de entidad Department.

<Function Name="GetAvgBudget">
     <Parameter Name="Departments">
         <CollectionType>
            <TypeRef Type="SchoolModel.Department"/>
         </CollectionType>
          </Parameter>
      <ReturnType Type="Collection(Edm.Decimal)"/>
      <DefiningExpression>
            SELECT VALUE AVG(d.Budget) FROM Departments AS d
      </DefiningExpression>
</Function>

Vea también

Conceptos

Información general de Entity Framework
Especificación CSDL
FunctionImport (Elemento) (CSDL)

Otros recursos

Especificaciones CSDL, SSDL y MSL
ADO.NET Entity Data Model Tools