Cómo: Asignar funciones de modificación a procedimientos almacenados (herramientas de Entity Data Model)
En este tema se describe cómo utilizar ADO.NET Entity Data Model Designer (Entity Designer) para asignar a procedimientos almacenados las operaciones de inserción, actualización y eliminación de un tipo de entidad.
Entity Framework genera una clase derivada de ObjectContext que representa el contenedor de entidades definido en el modelo conceptual. (El nombre de la clase derivada es el nombre de EntityContainer en el archivo de modelo conceptual). Esta clase expone un método SaveChanges que desencadena actualizaciones en la base de datos subyacente. Estas actualizaciones pueden utilizar las instrucciones SQL que genera automáticamente el sistema (de forma predeterminada) o procedimientos almacenados que el programador especifica. El código de aplicación que se emplea para crear, actualizar y eliminar las entidades es el mismo tanto si se utilizan procedimientos almacenados para actualizar la base de datos como si no.
Nota: |
---|
Si no asigna las tres operaciones de inserción, actualización o eliminación de un tipo de entidad a procedimientos almacenados, se producirá un error en las operaciones no asignadas en tiempo de ejecución y se producirá una excepción UpdateException. |
En los procedimientos siguientes se supone que tiene el archivo .edmx abierto en Entity Designer.
Asignar la operación de inserción a un procedimiento almacenado
Para asignar la operación de inserción a un procedimiento almacenado
En la superficie de Entity Designer o en la Ventana Explorador de modelos, haga clic con el botón secundario en el tipo de entidad al que desee asignar la operación de inserción y seleccione Asignaciones de procedimientos almacenados.
Aparece la vista Asignar Entity to Functions de la ventana Detalles de la asignación.
Haga clic en <Seleccionar Insert Function>.
En la lista desplegable, seleccione el procedimiento almacenado al que se asignará la operación de inserción.
La ventana se rellena con las asignaciones predeterminadas entre las propiedades de entidad y los parámetros del procedimiento almacenado.
Para cada parámetro de procedimiento almacenado, modifique la asignación según convenga haciendo clic en el campo de propiedades correspondiente y seleccionando la propiedad adecuada en la lista desplegable.
Nota: Todas las claves de entidad deben tener asignaciones.Si el procedimiento almacenado utiliza una instrucción INSERT, la clave de entidad generalmente se asignará a la clave principal que se creó cuando se insertó la fila nueva.Los pasos siguientes describen cómo asignar a las propiedades de entidad los datos que el procedimiento almacenado devuelve. Haga clic en <Agregar Result Binding>.
El campo ya se puede modificar.
Escriba el nombre del parámetro que contiene los datos que devolvió el procedimiento almacenado.
Haga clic en el campo de propiedades que corresponde al nombre de parámetro.
El campo se convierte en una lista desplegable de propiedades.
Seleccione la propiedad a la que desea asignar los datos devueltos.
Nota: Para los parámetros de salida con valores enteros, la casilla RowsAffectedParameter está habilitada.Si la casilla está activada para un parámetro y el valor devuelto es cero cuando se llame a la operación de inserción, se producirá una excepción OptimisticConcurrencyException. Repita los pasos 5 a 8 para cada valor devuelto y propiedad sin asignar.
La operación de inserción para el tipo de entidad seleccionado está asignada ahora a un procedimiento almacenado.
Asignar la operación de actualización a un procedimiento almacenado
Para asignar la operación de actualización a un procedimiento almacenado
En la superficie de Entity Designer o en la Ventana Explorador de modelos, haga clic con el botón secundario en el tipo de entidad para el que desee asignar la operación de inserción y seleccione Asignaciones de procedimientos almacenados.
Aparece la vista Asignar Entity to Functions de la ventana Detalles de la asignación.
Haga clic en <Seleccionar Update Function>.
En la lista desplegable, seleccione el procedimiento almacenado al que se asignará la operación de actualización.
La ventana se rellena con las asignaciones predeterminadas entre las propiedades de entidad y los parámetros del procedimiento almacenado.
Para cada parámetro de procedimiento almacenado, modifique la asignación según convenga haciendo clic en el campo de propiedades correspondiente y seleccionando la propiedad adecuada en la lista desplegable.
Si lo desea, puede activar para cada propiedad en el cuadro de la columna Usar valor original.
La opción Usar valor original le permite utilizar el control de simultaneidad. Si la opción Usar valor original se selecciona para una propiedad, el valor de la propiedad que se leyó de la base de datos se pasará al parámetro de procedimiento almacenado especificado. Observe que ambos valores, el original y el actual, de una propiedad se pueden pasar a parámetros diferentes.
Nota: Al asignar la operación de actualización, puede asignar a las propiedades de entidad los datos que devolvió el procedimiento almacenado.Los pasos siguientes describen cómo asignar a las propiedades de entidad los datos que el procedimiento almacenado devuelve. Haga clic en <Agregar Result Binding>.
El campo ya se puede modificar.
Escriba el nombre del parámetro que contiene los datos que devolvió el procedimiento almacenado.
Haga clic en el campo de propiedades que corresponde al nombre de parámetro.
En la lista desplegable, seleccione la propiedad a la que desea asignar los datos devueltos.
Nota: Para los parámetros de salida con valores enteros, la casilla RowsAffectedParameter está habilitada.Si la casilla está activada para un parámetro y el valor devuelto es cero cuando se llame a la operación de actualización, se producirá una excepción OptimisticConcurrencyException. Opcionalmente, repita los pasos 6 a 9 con cada valor devuelto.
La operación de actualización para el tipo de entidad seleccionado está asignada ahora a un procedimiento almacenado.
Asignar la operación de eliminación a un procedimiento almacenado
Para asignar la operación de eliminación a un procedimiento almacenado
En la superficie de Entity Designer o en la Ventana Explorador de modelos, haga clic con el botón secundario en el tipo de entidad para el que desee asignar la operación de inserción y seleccione Asignaciones de procedimientos almacenados.
Aparece la vista Asignar Entity to Functions de la ventana Detalles de la asignación.
Haga clic en <Seleccionar Delete Function>.
En la lista desplegable, seleccione el procedimiento almacenado al que se asignará la operación de eliminación.
La ventana se rellena con las asignaciones predeterminadas entre las propiedades de entidad y los parámetros del procedimiento almacenado.
Para cada parámetro de procedimiento almacenado, modifique la asignación según convenga haciendo clic en el campo de propiedades correspondiente y seleccionando la propiedad adecuada en la lista desplegable.
Nota: Debe asignar las asociaciones a los parámetros de procedimiento almacenado.Las asociaciones están disponibles para seleccionarse en la lista desplegable de propiedades.
Nota: |
---|
Para los parámetros de salida con valores enteros, la casilla RowsAffectedParameter está habilitada.Si la casilla está activada para un parámetro y el valor devuelto es cero cuando se llame a la operación de eliminación, se producirá una excepción OptimisticConcurrencyException. |
Vea también
Tareas
Tutorial: Asignar una entidad a procedimientos administrados (Herramientas de Entity Data Model)