C# 编程指南:LINQ(Language Integrated Query)与集合、数据库的整合

C#中的LINQ(Language Integrated Query)提供了与集合和数据库的整合,使得对集合和数据库的查询和操作变得更加方便和统一。

部分
1
LINQ与集合的整合
LINQ可以直接应用于各种集合类型,如数组、列表、字典等。
LINQ提供了一系列的扩展方法,可以对集合进行查询、筛选、排序、分组等操作。
// LINQ与集合的整合示例代码

// 查询名字以"A"开头的学生
List<string> names = new List<string> { "Alice", "Bob", "Adam", "Amy" };

var query = from name in names
            where name.StartsWith("A")
            select name;

foreach (var name in query)
{
    Console.WriteLine(name); // 输出: Alice, Adam, Amy
}

在以上示例中,LINQ与List<string>集合整合,通过查询语法查询名字以"A"开头的学生。

部分
2
LINQ与数据库的整合
LINQ提供了LINQ to SQL和Entity Framework等技术,可以与关系型数据库进行整合。
LINQ to SQL通过对象关系映射(ORM)将数据库表映射为对象,可以通过LINQ查询语句直接操作数据库。
Entity Framework是一种ORM框架,提供了更高级的对象关系映射和查询功能。
// LINQ与数据库的整合示例代码(使用Entity Framework)

// 定义实体类
public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

// 创建数据库上下文类
public class SchoolContext : DbContext
{
    public DbSet<Student> Students { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        optionsBuilder.UseSqlServer("连接字符串");
    }
}

// 查询年龄大于18的学生
using (var context = new SchoolContext())
{
    var query = from student in context.Students
                where student.Age > 18
                select student;

    foreach (var student in query)
    {
        Console.WriteLine($"Name: {student.Name}, Age: {student.Age}");
    }
}

在以上示例中,使用Entity Framework将数据库表映射为Student对象,并通过LINQ查询语句查询年龄大于18的学生。

    目录

  • 1.
    LINQ与集合的整合
  • 2.
    LINQ与数据库的整合