.NET 中一项突破性的创新是 LINQ(Language Integrated Query,语言集成查询),这组语言扩展让你能够不必离开舒适的 C# 语言执行查询。

       LINQ 定义了用于构建查询表达式的关键字。这些查询表达式能够对数据进行选择、过滤、排序、分组和转换。借助各种 LINQ 扩展,你可以对不同的数据源使用相同的查询表达式。

       虽然你可以在任意地方使用 LINQ ,但是只有 ASP.NET 应用程序中最可能把 LINQ 用作数据库组件的一部分。你可以和 ADO.NET 数据访问代码一起使用 LINQ ,或者借助 LINQ to Entities 取代 ADO.NET 数据访问代码。

 

LINQ 基础

       接近 LINQ 最简单的方法时了解它是如何针对内存集合工作的,这就是 LINQ to Objects,最简单形式的 LINQ。

 

       就本质而言,LINQ to Objects 能够使用声明性的 LINQ 表达式代替逻辑(如 foreach 块):

new EmployeeDB();
protected void btnForeach_Click(object sender, EventArgs e)
{
    List<EmployeeDetails> employees = db.GetEmployees();
    List<EmployeeDetails> matches = new List<EmployeeDetails>();
    foreach (EmployeeDetails employee in employees)
    {
        if (employee.LastName.StartsWith("D"))
        {
            matches.Add(employee);
        }
    }
    gridEmployees.DataSource = matches;
    gridEmployees.DataBind();
}
 
protected void btnLINQ_Click(object sender, EventArgs e)
{
    List<EmployeeDetails> employees = db.GetEmployees();
    IEnumerable<EmployeeDetails> matches;
    matches = from employee in employees
              where employee.LastName.StartsWith("D")
              select employee;
    gridEmployees.DataSource = matches;
    gridEmployees.DataBind();
}

相关文章: