Pregunta

Actualmente tengo un único DataSet declarado que contiene 3 tablas. En aras de este ejemplo, los llamaremos Usuario, Pregunta y Respuesta.

En cada uno de estos tengo un TableAdapter con los diversos métodos necesarios, es decir. GetData (), Actualizar (), Eliminar () etc.

En la Tabla de respuestas, me gustaría anular el Método de actualización de TableAdapter para agregar algunos Parámetros que no son parte de la tabla, pero necesito pasarlos debido al requisito ObjectDataSource.

¿Cómo hago para anular el método Update () en el Answer TableAdapter?

Al tratar de mantener el proyecto simple, no quiero crear una capa DAL separada.

¿Fue útil?

Solución

Cualquier clase TableAdapter generada por el diseñador, sus miembros apropiados marcados como virtuales, esto incluye el método Update y Fill entre otros. Hemce, la solución es simplemente heredar de la clase TableAdapter generada por el diseñador y anular el método Update , agregando su código personalizado allí.

También tiene la opción de sobrecargar el método Update , si desea cambiar la firma del método (recuento / tipos de parámetros). Puede hacerlo en una clase derivada, o más convenientemente desde mi punto de vista, utilizando un método de extensión:

public static void Update(this MyTableAdapter tableAdapter, ... other params ...)
{
    // do stuff here
    tableAdapter.Update(...);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top