Programa C# para unir múltiples fuentes de datos usando LINQ

LINQ se conoce como Language Integrated Query y se introdujo en .NET 3.5. Brinda la capacidad a los lenguajes .NET para crear consultas para recuperar datos de la fuente de datos. En este artículo, analizaremos cómo unir varias fuentes de datos mediante LINQ. Aquí fuente de datos significa lista. Por lo tanto, estamos utilizando la recopilación de listas para crear tres fuentes de datos con los detalles de los estudiantes, luego unimos los datos según la identificación, que es común en todas las listas que usan la palabra clave de unión .

Sintaxis:

de iterador1 en datos1

unir iterador2 en data2

en iterator1.column_name es igual a iterator2.column_name

unir iterador3 en data3

en iterator1.column_name es igual a iterator3.column_name

————————————————––

————————————————––

unir iteratorn en datan

en iterator1.column_name es igual a iteratorn.column_name

Donde data es la lista de la fuente de datos y el iterador se usa para obtener los datos de la fuente de datos en particular

Retorno: devolverá las filas coincidentes en función de los nombres de columna comparados.

Ejemplo:

Input:

Student
new Student{id = 7058, name = "sravan kumar", dept_id = 1, add_id = 21},
new Student{id = 7059, name = "jyothika", dept_id = 2, add_id = 22},
new Student{id = 7072, name = "harsha", dept_id = 1, add_id = 22},
new Student{id = 7076, name = "khyathi", dept_id = 4, add_id = 27},
   
Department
new Department{dept_id = 1, dept_name = "CSE"},
new Department{dept_id = 2, dept_name = "CSE"},
new Department{dept_id = 3, dept_name = "IT"},  
 
Address
new Address{add_id = 21, address_name = "hyd"},
new Address{add_id = 22, address_name = "railu-peta"},
new Address{add_id = 24, address_name = "chenchu-peta"},
             
Output:
ID: 7058--> Name: sravan kumar--> Department: CSE--> Address: hyd
ID: 7059--> Name: jyothika--> Department: CSE--> Address: railu-peta
ID: 7072--> Name: harsha--> Department: CSE--> Address: railu-peta

Acercarse

1. Cree tres fuentes de datos usando una lista llamada Estudiante, Departamento y Dirección declarando las variables.

2. Agregue valores a estas listas.

3. Realice la unión según la identificación del estudiante, la identificación del departamento y la identificación de la dirección.

var result = (from stu in students

join dept in departments on stu.dept_id equals dept.dept_id

join add in addresses on stu.add_id equals add.add_id).ToList();

4. Seleccione los datos usando el método select().

select new
{
    ID = stu.id,
    Name = stu.name,
    DeptName = dept.dept_name,
    address = add.address_name
}

5. Mostrar el uso de cada ciclo.

foreach (var e in result)
{
    Console.WriteLine("\tID: " + e.ID + "--> Name: " + 
                               e.Name + "--> Department: " + 
                           e.DeptName + "--> Address: " + e.address);
}

Ejemplo:

C#

// C# program to join multiple data sources
// Using LINQ
using System;
using System.Linq;
using System.Collections.Generic;
  
// Variables for Student list
public class Student
{
    public int id;
    public string name;
    public int dept_id;
    public int add_id;
}
  
// Variables for Department list
public class Department
{
    public int dept_id;
    public string dept_name;
}
  
// Variables for Address list
public class Address 
{
    public int add_id;
    public string address_name;
}
  
class GFG{
  
// Driver code   
static void Main(string[] args)
{
      
    // Enter data for Student list
    List<Student> students = new List<Student>()
    {
        new Student{ id = 7058, name = "sravan kumar",
                     dept_id = 1, add_id = 21 },
        new Student{ id = 7059, name = "jyothika",
                     dept_id = 2, add_id = 22 },
        new Student{ id = 7072, name = "harsha",
                     dept_id = 1, add_id = 22 },
        new Student{ id = 7076, name = "khyathi",
                     dept_id = 4, add_id = 27 },
    };
  
    List<Department> departments = new List<Department>()
    {
        new Department{ dept_id = 1, dept_name = "CSE" },
        new Department{ dept_id = 2, dept_name = "CSE" },
        new Department{ dept_id = 3, dept_name = "IT " },
    };
  
    List<Address> addresses = new List<Address>()
    {
        new Address{ add_id = 21, address_name = "hyd" },
        new Address{ add_id = 22, address_name = "railu-peta" },
        new Address{ add_id = 24, address_name = "chenchu-peta" },
    };
  
    // Join the students and other two tables
    var result = (from stu in students
  
                join dept in departments on stu
                .dept_id equals dept
                .dept_id
                  
                join add in addresses on stu
                .add_id equals add.add_id
                  
                select new 
                {
                    ID = stu.id, Name = stu.name,
                    DeptName = dept.dept_name,
                    address = add.address_name 
                      
                }).ToList();
                  
    // Display the result
    foreach(var e in result)
    {
        Console.WriteLine("\tID: " + e.ID + "--> Name: " + 
                                   e.Name + "--> Department: " + 
                               e.DeptName + "--> Address: " + e.address);
    }
}
}

Producción:

ID: 7058--> Name: sravan kumar--> Department: CSE--> Address: hyd
ID: 7059--> Name: jyothika--> Department: CSE--> Address: railu-peta
ID: 7072--> Name: harsha--> Department: CSE--> Address: railu-peta

Publicación traducida automáticamente

Artículo escrito por sravankumar8128 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *