Cómo: Definir funciones personalizadas en el modelo conceptual (Entity Framework)

Puede definir una función personalizada en el modelo conceptual agregando un elemento Function que contiene un elemento DefiningExpression al lenguaje de definición de esquemas conceptuales (CSDL) de un archivo .edmx. Puede definir cualquier instrucción de Entity SQL, incluso instrucciones con parámetros, en un elemento CommandText.

Para obtener más información, vea DefiningExpression (CSDL) y User-Defined Functions (Entity SQL).

Definir una función personalizada en el modelo conceptual

El procedimiento siguiente da por hecho que tiene un archivo .edmx abierto en el Editor XML de Visual Studio. El procedimiento proporciona un esquema general de cómo agregar una función personalizada al modelo de almacenamiento. El ejemplo que sigue proporciona más detalles sobre los pasos del procedimiento.

Para definir una función personalizada en el modelo conceptual

  1. Agregue un elemento Function al elemento Schema en la sección Contenido del modelo conceptual del archivo .edmx.

    Dd456812.note(es-es,VS.100).gifNota:
    Debe especificar un tipo de valor devuelto para la función mediante el atributo ReturnType.

    Para obtener más información, vea Function Element (SSDL), Schema Element (SSDL) y ReturnType (CSDL).

  2. Para cada parámetro aceptado por la función, agregue un elemento Parameter al elemento Function.

    Dd456812.note(es-es,VS.100).gifNota:
    Los parámetros de la función no se denotan mediante prefijos como @.Se hace referencia a ellos directamente por el nombre en la expresión de Entity SQL que define la función.Elija nombres de parámetros distintos de los asignados a los demás identificadores que va a usar en la expresión de Entity SQL.

    Para obtener más información, vea Parameter Element (CSDL).

  3. Agregue un elemento DefiningExpression al nuevo elemento Function.

  4. Defina una instrucción de Entity SQL en el elemento DefiningExpression.

  5. Guarde y cierre el archivo .edmx.

Ejemplo

A continuación se muestra un ejemplo de un elemento Function, que puede agregar al elemento Schema en la sección Contenido del modelo conceptual de un archivo .edmx para definir una función personalizada. Agregue este elemento Function al modelo School para poder determinar el número de años que lleva contratado un instructor.

Para obtener información sobre el ejemplo del modelo School, vea Creating the School Sample Database y Generating the School Entity Data Model.

<Function Name="YearsSince" ReturnType="Edm.Int32">
  <Parameter Name="date" Type="Edm.DateTime" />
  <DefiningExpression>
    Year(CurrentDateTime()) - Year(date)
  </DefiningExpression>
</Function>

Una vez que una función se ha definido en el modelo conceptual, se la puede llamar desde las consultas de Entity SQL de la aplicación. Para obtener información sobre cómo llamar a la función desde las consultas LINQ to Entities, vea How to: Call Functions Defined in the Conceptual Model.

Vea también

Tareas

Cómo: Agregar una consulta de definición (Entity Framework)
Cómo: Definir funciones personalizadas en el modelo almacenamiento (Entity Framework)

Conceptos

ADO.NET Entity Data Model Designer

Otros recursos

Editar un archivo .edmx manualmente (Entity Framework)
Herramientas de ADO.NET Entity Data Model
Calling Functions in LINQ to Entities