码迷,mamicode.com
首页 > 其他好文 > 详细

LINQ学习笔记

时间:2017-08-10 19:50:09      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:ram   还需   params   main   otn   .com   func   linq查询   system   

LINQ学习笔记(一)

1、LINQ简介

语言集成查询 (LINQ) 将数据库查询集成到代码中,支持SQL数据库、XML、ADO.NET、.NET以及支持 IEnumerable 或泛型 IEnumerable<T> 接口的任何对象集合数据源的数据访问,避免了以前使用数据库还需学习不同的数据库查询语言,如SQL、ADO.NET、XML等。LINQ查询表达式采用声明式查询语法编写,使用查询表达式时可以使用最少的代码实现数据源筛选、查询和排序操作。 实现跨数据源与数据格式的查询,可使用相同的基本查询表达式模式来查询和转换 SQL 数据库、ADO .NET 数据集、XML 文档和流以及 .NET 集合中的数据。

 例1:完整的数据源创建、查询表达式定义、查询表达式执行的完整过程。

class LINQQueryExpressions
{
    static void Main()
    {
       
        // Specify the data source.
        int[] scores = new int[] { 97, 92, 81, 60 };

        // Define the query expression.
        IEnumerable<int> scoreQuery =
            from score in scores
            where score > 80
            select score;

        // Execute the query.
        foreach (int i in scoreQuery)
        {
            Console.Write(i + " ");
        }           
    }
}

1、数据源

上例中,数据源是一个数组,因此它隐式支持泛型 IEnumerable<T> 接口。 这一事实意味着该数据源可以用 LINQ 进行查询。 查询在 foreach 语句中执行,且 foreach 需要 IEnumerableIEnumerable<T>。 支持 IEnumerable<T> 或派生接口(如泛型 IQueryable<T>)的类型称为可查询类型。

如果数据源还没有加载到内存中,则需要手动加载数据源,例如:

XML数据源

// using System.Xml.Linq;
XElement contacts = XElement.Load(@"c:\myContactList.xml");

mdf数据源其中

Northwnd db = new Northwnd(@"c:\northwnd.mdf"); 

// Query for customers in London. 
IQueryable<Customer> custQuery = 
    from cust in db.Customers 
    where cust.City == "London" 
    select cust; 

2、查询

查询就是从数据源中检索信息,查询可以实现在数据返回之前对这些数据进行排序、分许和结构化。查询本身并不返回任何数据。

from指定数据源、Where子句指定筛选条件、select指定返回数据的类型

3、查询执行

  linq的数据查询过程延迟执行,查询变量本身只存储查询命令,等到访问查询结果集时,才执行实际的查询操作。

2、LINQ特点

1、查询表达式可用于查询并转换所有启用了 LINQ 的数据源中的数据。

2、查询表达式易于掌握,因为使用了许多熟悉的 C# 语言构造。

3、变量都是强类型,在Linq中无需声明变量类型。

4、只有在循环访问查询结果时,才会执行查询。

5、查询表达式可被编译成表达式树或委托,具体视应用查询的类型而定。

LINQ学习笔记

标签:ram   还需   params   main   otn   .com   func   linq查询   system   

原文地址:http://www.cnblogs.com/ttaylor/p/7340083.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!