Cómo: asignar procedimientos almacenados para realizar actualizaciones, inserciones y eliminaciones (Object Relational Designer)How to: Assign stored procedures to perform updates, inserts, and deletes (O/R Designer)

Los procedimientos almacenados se pueden agregar a la Object Relational Designer y se ejecuta como típico DataContext métodos.Stored procedures can be added to the O/R Designer and executed as typical DataContext methods. También se puede usar para invalidar el comportamiento predeterminado del LINQ to SQL en tiempo de ejecución que realiza inserciones, actualizaciones y eliminaciones cuando los cambios se guardan las clases de entidad en una base de datos (por ejemplo, al llamar a la SubmitChanges método).They can also be used to override the default LINQ to SQL runtime behavior that performs Inserts, Updates, and Deletes when changes are saved from entity classes to a database (for example, when calling the SubmitChanges method).

Note

Si el procedimiento almacenado devuelve valores que se deben devolver al cliente (por ejemplo, los valores calculados en el procedimiento almacenado), cree parámetros de salida en los procedimientos almacenados.If your stored procedure returns values that need to be sent back to the client (for example, values calculated in the stored procedure), create output parameters in your stored procedures. Si no puede usar parámetros de salida, escriba una implementación de método parcial en lugar de confiar en las invalidaciones generadas por Object Relational Designer.If you cannot use output parameters, write a partial method implementation instead of relying on overrides generated by the O/R Designer. Los miembros asignados a los valores generados por la base de datos deben establecerse en valores adecuados después de que se ejecuten correctamente las operaciones de INSERCIÓN o ACTUALIZACIÓN.Members mapped to database-generated values need to be set to appropriate values after successful completion of INSERT or UPDATE operations. Para obtener más información, consulte responsabilidades de los desarrolladores invalidar un comportamiento predeterminado.For more information, see Responsibilities of the Developer In Overriding Default Behavior.

Note

LINQ to SQL controla valores base de datos generados automáticamente para la identidad (incremento automático), rowguidcol (GUID generado por la base de datos) y las columnas de marca de tiempo.LINQ to SQL handles database-generated values automatically for identity (auto-increment), rowguidcol (database-generated GUID), and timestamp columns. Los valores generados por la base de datos de otros tipos de columna producirán inesperadamente un valor nulo.Database-generated values in other column types will unexpectedly result in a null value. Para devolver los valores generados por base de datos, debe establecer manualmente IsDbGenerated a true y AutoSync a uno de los siguientes: AutoSync.Always, AutoSync.OnInsert , o AutoSync.OnUpdate.To return the database-generated values, you should manually set IsDbGenerated to true and AutoSync to one of the following: AutoSync.Always, AutoSync.OnInsert, or AutoSync.OnUpdate.

Configurar el comportamiento de actualización de una clase de entidadConfigure the Update Behavior of an Entity Class

De forma predeterminada, se proporciona la lógica para actualizar una base de datos (inserciones, actualizaciones y eliminaciones) con los cambios realizados en los datos de LINQ a las clases de entity SQL mediante LINQ to SQL en tiempo de ejecución.By default, the logic to update a database (inserts, updates, and deletes) with changes that were made to the data in LINQ to SQL entity classes is provided by the LINQ to SQL runtime. El tiempo de ejecución crea de forma predeterminada los comandos INSERT, UPDATE y DELETE que se basan en el esquema de la tabla (la columna y la información de clave principal).The runtime creates default INSERT, UPDATE, and DELETE commands that are based on the schema of the table (the column and primary key information). Cuando no se desea el comportamiento predeterminado, puede configurar el comportamiento de actualización asignando procedimientos almacenados concretos para realizar las inserciones, actualizaciones y eliminaciones necesarias para poder manipular los datos de la tabla.When the default behavior is not desired, you can configure the update behavior by assigning specific stored procedures for performing the necessary inserts, updates, and deletes required to manipulate the data in your table. También se puede realizar esta acción cuando no se genera el comportamiento predeterminado, por ejemplo, cuando las clases de entidad se asignan a vistas.You can also do this when the default behavior is not generated, for example, when your entity classes map to views. Por último, se puede invalidar el comportamiento de actualización predeterminado cuando la base de datos requiere el acceso a las tablas a través de procedimientos almacenados.Finally, you can override the default update behavior when the database requires table access through stored procedures.

Note

Es posible que el equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones.Your computer might show different names or locations for some of the Visual Studio user interface elements in the following instructions. La edición de Visual Studio que se tenga y la configuración que se use determinan estos elementos.The Visual Studio edition that you have and the settings that you use, determine these elements. Para obtener más información, vea Personalizar el IDE.For more information, see Personalize the IDE.

Para asignar procedimientos almacenados con el fin de invalidar el comportamiento predeterminado de una clase de entidadTo assign stored procedures to override the default behavior of an entity class

  1. Abra el LINQ to SQL archivo en el diseñador.Open the LINQ to SQL file in the designer. (Haga doble clic en el .dbml archivo el Explorador de soluciones.)(Double-click the .dbml file in Solution Explorer.)

  2. En Explorador de servidores o Database Explorer, expanda procedimientos almacenados y busque los procedimientos almacenados que desea usar para la inserción, actualización o eliminación comandos de la clase de entidad.In Server Explorer or Database Explorer, expand Stored Procedures and locate the stored procedures that you want to use for the Insert, Update, and/or Delete commands of the entity class.

  3. Arrastre el procedimiento almacenado en el Object Relational Designer.Drag the stored procedure onto the O/R Designer.

    El procedimiento almacenado se agrega al panel de métodos como un método de DataContext.The stored procedure is added to the methods pane as a DataContext method. Para obtener más información, consulte métodos DataContext (Object Relational Designer).For more information, see DataContext Methods (O/R Designer).

  4. Seleccione la clase de entidad para la que desee usar el procedimiento almacenado para realizar las actualizaciones.Select the entity class for which you want to use the stored procedure for performing updates.

  5. En el propiedades ventana, seleccione el comando que desee invalidar (insertar, actualización, o eliminar).In the Properties window, select the command to override (Insert, Update, or Delete).

  6. Haga clic en el botón de puntos suspensivos (...) junto a las palabras en tiempo de ejecución Use para abrir el configurar comportamiento cuadro de diálogo.Click the ellipsis (...) next to the words Use Runtime to open the Configure Behavior dialog box.

  7. Seleccione personalizar.Select Customize.

  8. Seleccione el procedimiento almacenado que desee en el personalizar lista.Select the desired stored procedure in the Customize list.

  9. Examine la lista de argumentos de método y propiedades de la clase para comprobar que la argumentos de método mapa correspondientes propiedades de la clase.Inspect the list of Method Arguments and Class Properties to verify that the Method Arguments map to the appropriate Class Properties. Asigne los argumentos de método originales (Original_<ArgumentName>) a las propiedades originales (<PropertyName> (Original)) para el Update y Delete comandos.Map the original method arguments (Original_<ArgumentName>) to the original properties (<PropertyName> (Original)) for the Update and Delete commands.

    Note

    De forma predeterminada, los argumentos de método se asignan a las propiedades de clase cuando los nombres coinciden.By default, method arguments map to class properties when the names match. Si los nombres de propiedad modificados ya no coinciden entre la tabla y la clase de entidad, puede que tenga que seleccionar la propiedad de clase equivalente para la asignación si el diseñador no puede determinar la asignación correcta.If changed property names no longer match between the table and the entity class, you might have to select the equivalent class property to map to if the designer cannot determine the correct mapping.

  10. Haga clic en Aceptar o aplicar.Click OK or Apply.

    Note

    Puede seguir configurar el comportamiento para cada combinación de clase y el comportamiento, siempre haga clic en aplicar después de realizar cada modificación.You can continue to configure the behavior for each class and behavior combination as long as you click Apply after you make each change. Si cambia la clase o el comportamiento antes de hacer clic aplicar, un cuadro de diálogo de advertencia aparece y proporciona una oportunidad para aplicar los cambios.If you change the class or behavior before you click Apply, a warning dialog box appears and provides you an opportunity to apply your changes.

Para volver a usar la lógica de tiempo de ejecución predeterminado para las actualizaciones, haga clic en el botón de puntos suspensivos junto a la insertar, actualización, o eliminar comando en el propiedades ventana y, a continuación, seleccione usar en tiempo de ejecución en el configurar comportamiento cuadro de diálogo.To revert to using the default runtime logic for updates, click the ellipsis next to the Insert, Update, or Delete command in the Properties window and then select Use runtime in the Configure Behavior dialog box.

Vea tambiénSee also