Compartir a través de


Adición de validación a clases de entidad

Nota:

La DataSet clase y las clases relacionadas son tecnologías heredadas de .NET Framework de principios de los años 2000 que permiten a las aplicaciones trabajar con datos en memoria mientras las aplicaciones están desconectadas de la base de datos. Las tecnologías son especialmente útiles para las aplicaciones que permiten a los usuarios modificar datos y conservar los cambios de nuevo en la base de datos. Aunque los conjuntos de datos son una tecnología probada de éxito, el enfoque recomendado para las nuevas aplicaciones .NET es usar Entity Framework Core. Entity Framework proporciona una manera más natural de trabajar con datos tabulares como modelos de objetos y tiene una interfaz de programación más sencilla.

Validar las clases de entidad es el proceso de confirmar que los valores especificados en objetos de datos cumplen las restricciones en el esquema de un objeto y también las reglas establecidas para la aplicación. Validar los datos antes de enviar actualizaciones a la base de datos subyacente es un procedimiento recomendado que reduce los errores. También reduce el número potencial de recorridos de ida y vuelta entre una aplicación y la base de datos.

Las herramientas LINQ to SQL de Visual Studio proporcionan métodos parciales que permiten a los usuarios ampliar 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 cambios de columna individuales.

Nota:

En este tema se proporcionan los pasos básicos para agregar validación a las clases de entidad mediante el Diseñador de O/R. Dado que puede ser difícil seguir estos pasos genéricos sin hacer referencia a una clase de entidad específica, se proporciona un tutorial que usa datos reales.

Agregar validación para los cambios en el valor de una columna específica

Este procedimiento muestra cómo validar los datos cuando cambia el valor de una columna. Dado que la validación se realiza dentro de la definición de clase (en lugar de en la interfaz de usuario), se produce una excepción si el valor hace que se produzca un error en la validación. Implemente el control de errores para el código de la aplicación que intenta cambiar los valores de columna.

Nota:

Las instrucciones de este artículo muestran la versión más reciente de la experiencia de desarrollo interactiva (IDE) disponible en Visual Studio. El equipo puede mostrar nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario. Es posible que esté usando una versión diferente de Visual Studio o una configuración de entorno diferente. Para obtener más información, consulte Personalizar el IDE.

Para validar los datos durante el cambio de valor de una columna

  1. Abra o cree un nuevo archivo LINQ to SQL Classes (.dbml archivo) en el Diseñador de O/R. (Haga doble clic en el archivo en el .dbmlExplorador de soluciones).

  2. En el Diseñador de O/R, haga clic con el botón derecho en la clase para la que desea agregar validación y, a continuación, seleccione 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 del método .

    2. Busque el método OnCOLUMNNAMEChanging de la columna a la que desea agregar validación.

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

    4. Agregue el código siguiente para comprobar primero que se ha escrito un valor y, a continuación, para asegurarse de que el valor especificado para la columna es aceptable para la aplicación. El value argumento contiene el valor propuesto, por lo que debe agregar 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#:

    Dado que los proyectos de C# no generan automáticamente controladores de eventos, puede usar IntelliSense para crear los métodos parciales que cambian de columna. Escriba partial y, a continuación, un espacio para acceder a la lista de métodos parciales disponibles. Haga clic en el método de cambio de columna para la columna para la que desea agregar validación. El código siguiente es similar al código que se genera al seleccionar un método parcial que cambia de columna:

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

Agregar validación para actualizaciones a 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 una actualización intentada permite comparar valores en varias columnas si las reglas de negocios lo requieren. En el procedimiento siguiente se muestra cómo validar cuándo 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 parcial DataContext (en lugar de en la clase parcial de una clase de entidad específica).

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

  1. Abra o cree un nuevo archivo LINQ to SQL Classes (.dbml archivo) en el Diseñador de O/R. (Haga doble clic en el archivo en el .dbmlExplorador de soluciones).

  2. Haga clic con el botón derecho en un área vacía en el Diseñador de O/R y haga clic en Ver código.

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

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

  4. Para proyectos de Visual Basic:

    1. Expanda la lista Nombre del método .

    2. Haga clic en UpdateENTITYCLASSNAME.

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

    4. Acceda a valores de columna individuales mediante el instance argumento , 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#:

    Dado que los proyectos de C# no generan automáticamente controladores de eventos, puede usar IntelliSense para crear el método parcial UpdateCLASSNAME . Escriba partial y, a continuación, un espacio para acceder a la lista de métodos parciales disponibles. Haga clic en el método de actualización de la clase en la que desea agregar validación. El código siguiente es similar al código que se genera al seleccionar un UpdateCLASSNAME método parcial:

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