Compartir a través de


Cómo: Agregar validación a clases de entidad

Actualización: November 2007

Validar las clases de entidad es el proceso de confirmar que los valores especificados en los objetos de datos cumplen las restricciones en el esquema de un objeto, además de las reglas establecidas para la aplicación. Se recomienda validar los datos antes de enviar las actualizaciones a la base de datos subyacente para reducir los errores. De este modo, también se reduce el número de viajes de ida y vuelta entre una aplicación y la base de datos.

El Diseñador relacional de objetos (Diseñador R/O) proporciona métodos parciales que permiten a los usuarios extender el código generado por el diseñador que se ejecuta durante las inserciones, actualizaciones y eliminaciones de entidades completas, así como durante y después de las modificaciones de columnas individuales.

Nota:

En este tema se proporcionan los pasos básicos para agregar validación a las clases de entidad mediante el Diseñador relacional de objetos. Dado que podría resultar difícil seguir estos pasos genéricos sin hacer referencia a una clase de entidad concreta, se ha proporcionado un tutorial con datos reales. Para obtener instrucciones paso a paso detalladas sobre cómo configurar la validación mediante el Diseñador relacional de objetos, vea Tutorial: Agregar validación a clases de entidad.

Agregar validación para los cambios realizados en el valor de una columna concreta

En este procedimiento se muestra cómo validar datos cuando cambia el valor en una columna. Dado que la validación se realiza en la definición de clase (en lugar de la interfaz de usuario), se genera una excepción si el valor no puede validarse. Implemente un control de errores para el código en la aplicación que intenta cambiar los valores de columna.

Nota:

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.

Para validar los datos mientras se modifican los valores de una columna

  1. Abra o cree un nuevo archivo de clases de LINQ to SQL (archivo .dbml) en el Diseñador relacional de objetos. (Haga doble clic en el archivo .dbml en el Explorador de soluciones.)

  2. En el Diseñador relacional de objetos, haga clic con el botón secundario del mouse en la clase para la que desee agregar validación y, a continuación, haga clic en Ver código.

    El Editor de código se abre con una clase parcial para la clase de entidad seleccionada.

  3. Coloque el cursor en la clase parcial.

  4. Para proyectos de Visual Basic:

    1. Expanda la lista Nombre de método.

    2. Busque el método OnnombreDeColumnaChanging para la columna a la que desee agregar validación.

    3. Se agrega a la clase parcial un método OnnombreDeColumnaChanging.

    4. Agregue el código siguiente para comprobar, en primer lugar, que se ha especificado un valor y, a continuación, para asegurar que el valor especificado para la columna es aceptable para la aplicación. El argumento value contiene el valor propuesto, por lo que debe agregar la lógica para confirmar que es un valor válido:

      If value.HasValue Then
          ' Add code to ensure that the value is acceptable.
          ' If value < 1 Then
          '    Throw New Exception("Invalid data!")
          ' End If
      End If
      

    Para proyectos de C#:

    1. Dado que los proyectos de C# no generan automáticamente los controladores de eventos, puede usar IntelliSense para crear los métodos parciales de cambio de columna.

      Escriba partial y, a continuación, un espacio para obtener acceso a la lista de métodos parciales disponibles. Haga clic en el método de cambio de columna correspondiente a la columna a la que desee agregar validación. El código siguiente es similar al código que se genera al seleccionar un método parcial de cambio de columna:

      partial void OnCOLUMNNAMEChanging(COLUMNDATATYPE value)
          {
             throw new System.NotImplementedException();
          }
      

Agregar validación para las actualizaciones de una clase de entidad

Además de comprobar los valores durante los cambios, también puede validar los datos cuando se intenta actualizar una clase de entidad completa. La validación durante un intento de actualización permite comparar los valores de varias columnas si lo requieren las reglas del negocio. En el procedimiento siguiente se muestra cómo validar cuando se intenta actualizar una clase de entidad completa.

Nota:

El código de validación para las actualizaciones de clases de entidad completas se ejecuta en la clase DataContext parcial (en lugar de la clase parcial de una clase de entidad concreta).

Para validar datos durante la actualización de una clase de entidad

  1. Abra o cree un nuevo archivo de clases de LINQ to SQL (archivo .dbml) en el Diseñador relacional de objetos. (Haga doble clic en el archivo .dbml en el Explorador de soluciones.)

  2. Haga clic con el botón secundario del mouse en un área vacía del Diseñador relacional de objetos y, a continuación, haga clic en Ver código.

    El Editor de código se abre con una clase parcial para DataContext.

  3. Coloque el cursor en la clase parcial para DataContext.

  4. Para proyectos de Visual Basic:

    1. Expanda la lista Nombre de método.

    2. Haga clic en UpdatenombreDeClaseDeEntidad.

    3. Se agrega a la clase parcial un método UpdatenombreDeClaseDeEntidad.

    4. Obtenga acceso a los valores de la columna mediante el argumento instance, como se muestra en el código siguiente:

      If (instance.COLUMNNAME = x) And (instance.COLUMNNAME = y) Then
          Dim ErrorMessage As String = "Invalid data!"
          Throw New Exception(ErrorMessage)
      End If
      

    Para proyectos de C#:

    1. Dado que los proyectos de C# no generan automáticamente los controladores de eventos, puede usar IntelliSense para crear el método parcial UpdatenombreDeClase.

    2. Escriba partial y, a continuación, un espacio para obtener acceso a la lista de métodos parciales disponibles. Haga clic en el método de actualización de la clase a la que desee agregar validación. El código siguiente es similar al código que se genera al seleccionar un método parcial UpdatenombreDeClase:

      partial void UpdateCLASSNAME(CLASSNAME instance)
      {
          if ((instance.COLUMNNAME == x) && (instance.COLUMNNAME = y))
          {
              string ErrorMessage = "Invalid data!";
              throw new System.Exception(ErrorMessage);
          }
      }
      

Vea también

Otros recursos

Diseñador relacional de objetos (Diseñador R/O)

LINQ to SQL

Validar datos