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