Compartir a través de


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

Si agrega un elemento Function con un elemento CommandText al lenguaje de definición de esquemas de almacenamiento (SSDL) de un archivo .edmx, puede definir una función personalizada en el modelo de almacenamiento. Normalmente, se usa un elemento CommandText para proporcionar una funcionalidad similar a la de los procedimientos almacenados, pero en este caso el procedimiento almacenado se define en el archivo .edmx, no en la base de datos. Puede definir cualquier instrucción SQL, incluidas las instrucciones con parámetros, en un elemento CommandText.

Dd296754.note(es-es,VS.100).gifNota:
Los cambios realizados en la sección SSDL de un archivo .edmx, tal y como se sugieren en el procedimiento siguiente, se sobrescribirán si se usa el Asistente para actualizar modelo para actualizar el modelo.

Definir una función personalizada en el modelo de almacenamiento

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 siguiente proporciona más detalles sobre los pasos del procedimiento.

Para definir una función personalizada en el modelo de almacenamiento

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

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

  2. Agregue un elemento CommandText al nuevo elemento Function.

  3. Defina una instrucción SQL en el elemento CommandText.

    La instrucción puede ser una instrucción con parámetros.

  4. Por cada parámetro de la consulta SQL, agregue un elemento Parameter al elemento Function. Establezca los atributos Name, Mode y Type de cada elemento Parameter.

  5. Guarde y cierre el archivo .edmx.

  6. Abra el archivo .edmx en ADO.NET Entity Data Model Designer (Entity Designer).

    La función que se acaba de agregar aparecerá ahora como procedimiento almacenado en la ventana Explorador de modelos.

  7. Cree un elemento FunctionImport para el procedimiento almacenado. Para obtener más información, vea Cómo: Importar un procedimiento almacenado (Herramientas de Entity Data Model).

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 de almacenamiento de un archivo .edmx para definir una función personalizada. Si se agrega este elemento Function al modelo School, se proporciona funcionalidad para actualizar la asignación de oficina de un instructor especificado. Para obtener información sobre el ejemplo del modelo School, vea Quickstart (Entity Framework).

<Function Name="UpdateOfficeAssignment" IsComposable="false">
  <CommandText>
    UPDATE OfficeAssignment
    SET Location = @location
    WHERE InstructorID = @id;
  </CommandText>
  <Parameter Name="location"
             Mode="In"
             Type="nvarchar"/>
  <Parameter Name="id"
             Mode="In"
             Type="int"/>
</Function>

Para que esta función esté disponible en la clase ObjectContext, debe crear una importación de la función correspondiente en el modelo conceptual. Para obtener más información, vea Cómo: Importar un procedimiento almacenado (Herramientas de Entity Data Model).

Vea también

Tareas

Cómo: Agregar una consulta de definición (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