Compartir a través de


Tutorial: Crear clases LINQ to SQL usando herencia de tabla única (Diseñador de O/R)

Las herramientas linq to SQL de Visual Studio admiten la herencia de tabla única, ya que normalmente se implementan en sistemas relacionales. En este tutorial se amplían los pasos genéricos proporcionados en el tema How to: Configure inheritance by using the O/R Designer (Cómo: Configurar la herencia mediante el Diseñador de O/R ) y se proporcionan algunos datos reales para demostrar el uso de la herencia en el Diseñador de O/R.

Durante este tutorial, realizará las siguientes tareas:

  • Cree una tabla de base de datos y agregue datos a ella.

  • Cree una aplicación de Windows Forms.

  • Agregue un archivo LINQ to SQL a un proyecto.

  • Cree nuevas clases de entidad.

  • Configure las clases de entidad para usar la herencia.

  • Consulte la clase heredada.

  • Muestra los datos en un formulario Windows Forms.

Crear una tabla de la que heredar

Para ver cómo funciona la herencia, cree una tabla pequeña Person , úsela como clase base y, a continuación, cree un Employee objeto que herede de ella.

Para crear una tabla base para demostrar la herencia

  1. En el Explorador de servidores o en el Explorador de bases de datos, haga clic con el botón derecho en el nodo Tablas y haga clic en Agregar nueva tabla.

    Nota:

    Puede usar la base de datos Northwind o cualquier otra base de datos a la que pueda agregar una tabla.

  2. En el Diseñador de tablas, agregue las columnas siguientes a la tabla:

    Nombre de la columna Tipo de datos Permitir valores NULL
    ID int false
    Tipo int Verdadero
    Nombre nvarchar(200) false
    Apellido nvarchar(200) false
    Manager int Verdadero
  3. Establezca la columna id. como clave principal.

  4. Guarde la tabla y asígnele el nombre Person.

Agregar datos a la tabla

Para que pueda comprobar que la herencia está configurada correctamente, la tabla necesita algunos datos para cada clase de la herencia de tabla única.

Para agregar datos a la tabla

  1. Abra la tabla en la vista de datos. (Haga clic con el botón derecho en la tabla Persona en el Explorador de servidores o en el Explorador de bases de datos y haga clic en Mostrar datos de tabla).

  2. Copie los datos siguientes en la tabla. (Puede copiarlo y pegarlo en la tabla seleccionando toda la fila en el panel de resultados ).

    ID Tipo Nombre Apellido Manager
    1 1 Anne Wallace NULL
    2 1 Carlos Grilo NULL
    3 1 Yael Peled NULL
    4 2 Gatis Ozolins 1
    5 2 Andreas Hauser 1
    6 2 Tiffany Phuvasate 1
    7 2 Alexey Orekhov 2
    8 2 Michał Poliszkiewicz 2
    9 2 Tai Yee 2
    10 2 Fabricio Noriega 3
    11 2 Mindy Martin 3
    12 2 Ken Kwok 3

Creación de un nuevo proyecto

Ahora que ha creado la tabla, cree un nuevo proyecto para mostrar la configuración de la herencia.

Para crear la nueva aplicación de Windows Forms

  1. En Visual Studio, en el menú Archivo, seleccione Nuevo>Proyecto.

  2. Expanda Visual C# o Visual Basic en el panel izquierdo y, a continuación, seleccione Escritorio de Windows.

  3. En el panel central, seleccione el tipo de proyecto Aplicación de Windows Forms .

  4. Asigne al proyecto el nombre InheritanceWalkthrough y, a continuación, elija Aceptar.

    Se crea el proyecto InheritanceWalkthrough y se agrega al Explorador de soluciones.

Agregar un archivo de clases LINQ to SQL al proyecto

Para agregar un archivo LINQ to SQL al proyecto

  1. En el menú Proyecto , haga clic en Agregar nuevo elemento.

  2. Haga clic en la plantilla LINQ to SQL Classes (Clases de LINQ to SQL ) y, a continuación, seleccione Agregar.

    El .dbml archivo se agrega al proyecto y se abre el Diseñador de O/R .

Cree la herencia mediante el Diseñador de O/R

Configure la herencia arrastrando un objeto Herencia desde el Cuadro de herramientas a la superficie de diseño.

Para crear la herencia

  1. En el Explorador de servidores o en el Explorador de bases de datos, vaya a la tabla Person que creó anteriormente.

  2. Arrastre la tabla Person a la superficie de diseño del Diseñador de O/R .

  3. Arrastre una segunda tabla Person al Diseñador de O/R y cambie su nombre a Employee.

  4. Elimine la propiedad Manager del objeto Person .

  5. Elimine las propiedades Type, ID, FirstName y LastName del objeto Employee . (En otras palabras, elimine todas las propiedades excepto el Administrador).

  6. En la pestaña Diseñador de objetos relacionales del Cuadro de herramientas, establezca una herencia entre los objetos Person y Employee. Para ello, haga clic en el elemento Herencia del cuadro de herramientas y suelte el botón del mouse. A continuación, haga clic en el objeto Employee y, a continuación, en el objeto Person del Diseñador de O/R. La flecha de la línea de herencia apunta al objeto Person .

  7. Haga clic en la línea Herencia de la superficie de diseño.

  8. Establezca la propiedad Discriminator Property en Type.

  9. Establezca la propiedad Valor de discriminador de clase derivada en 2.

  10. Establezca la propiedad Valor discriminador de clase base en 1.

  11. Establezca la propiedad Herencia predeterminada en Persona.

  12. Compile el proyecto.

Consultar la clase heredada y mostrar los datos en el formulario

Ahora se agrega código al formulario que consulta una clase específica en el modelo de objetos.

Para crear una consulta LINQ y mostrar los resultados en el formulario

  1. Arrastre un ListBox sobre Form1.

  2. Haga doble clic en el formulario para crear un Form1_Load controlador de eventos.

  3. Agregue el código siguiente al controlador de Form1_Load eventos:

    NorthwindDataContext dc = new DataClasses1DataContext();
    var results = from emp in dc.Persons
                  where emp is Employee
                  select emp;
    
    foreach(Employee Emp in results)
    {
        listBox1.Items.Add(Emp.LastName)
    }
    

Prueba de la aplicación

Ejecute la aplicación y compruebe que los registros mostrados en el cuadro de lista son todos los empleados (registros que tienen un valor de 2 en su columna Tipo ).

Para probar la aplicación

  1. Presione F5.

  2. Compruebe que solo se muestran los registros que tienen un valor de 2 en su columna Tipo .

  3. Cierre el formulario. (En el menú Depurar , haga clic en Detener depuración).