`
vanner007
  • 浏览: 7344 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

ASP.NET中Linq的使用

    博客分类:
  • .Net
阅读更多
LINQ学习总结:
LINQ使用的关键字 :select, filter, sort, group, and transform data.
1.LINQ to Objects:查找内存中的对象集合。
2.LINQ to XML:可以不通过C#类直接读取XML文档。
3.LINQ to Entities:不写读取数据库的代码便可以读取数据库信息。

一、LINQ基础知识
其中,最简单的就是LINQ to Objects,通过这种方式,可以不用在C#中写迭代循环语句(foreach),
例如,你想查找名字以D开头的员工信息,按照foreach的传统方式,可以如下描述:
// 通过Helper方法获取员工集合
List<EmployeeDetails> employees = db.GetEmployees();
// 查找所有符合条件的员工集合(即名字以D开头的)
List<EmployeeDetails> matches = new List<EmployeeDetails>();
foreach (EmployeeDetails employee in employees)
{
     if (employee.LastName.StartsWith("D"))
     {
         matches.Add(employee);
     }
}
//通过GridView展示数据
gridEmployees.DataSource = matches;
gridEmployees.DataBind();

我们可以用LINQ方式重写以上代码:
List<EmployeeDetails> employees = db.GetEmployees();
IEnumerable<EmployeeDetails> matches;
matches = from employee in employees
          where employee.LastName.StartsWith("D")
          select employee;
//通过GridView展示数据
gridEmployees.DataSource = matches;
gridEmployees.DataBind();

注意,LINQ返回的结果是实现了IEnumerable<T>的iterator对象。

LINQ是如何执行查询或者过滤结果的呢?
答案: 它是通过数据类型进行查询的,例如查询LINQ to Entities ,它是把LINQ表达式转换成数据库执行语句。因此,它必须与数据库进行连接。

所有的LINQ语句必须要包含select 和from 关键字,
例如 matches = from employee in employees ...;
in,表示要操作的数据源; from,则表示数据源中不可分割的数据项的别名,可以在后面的过滤,排序或者分组等条件中直接使用这个别名。

注意,与直接用foreach操作集合相比较,LINQ的方式效率通常会较低。

LINQ有一个非常有意思的用法,那就是你可以把你要查询的某些数据动态的创建一个匿名对象保存你需要的信息:
例如:var matches = from employee in employees
                   select new {First = employee.FirstName, Last = employee.LastName};

通过此方式,便 可以返回隐式创建的对象集合,集中中的对象只有First和Last属性。

如果你不想使用匿名对象,你也可以选择定义一个新的类,然后再LINQ中直接使用它,如下例子:

类:
public class EmployeeName
{
     public string FirstName
     { get; set; }
     public string LastName
     { get; set; }
}
LINQ查询:
IEnumerable<EmployeeName> matches = from employee in employees
select new EmployeeName {FirstName = employee.FirstName,
LastName = employee.LastName};

因为属性都是 public的,所以LINQ创建对象,并为对象的属性赋值,最后生成结果集。

Filtering and Sorting
1.在前面的例子中,我们已经使用过了where过滤条件语句:
IEnumerable<EmployeeDetails> matches;
matches = from employee in employees
where employee.LastName.StartsWith("D")
select employee;

其中,where后面跟的是条件判断语句,根据每一个item的值进行判断,如果是true则包含在结果结果当中,为false则不包含在结果中。 而且,条件表达式可以用"&&(and)","||(or)",以及关系关系操作符(">","<","=")等等符号进行连接。

2.LINQ表达式有一个挺有用的特征就是:可以在语句中调用自定义的方法,只要该方法返回true or false就可以了,请看下面的例子:
Method:
private bool TestEmployee(EmployeeDetails employee)
{
return employee.LastName.StartsWith("D");
}
LINQ:
IEnumerable<EmployeeDetails> matches;
matches = from employee in employees
where TestEmployee(employee)
select employee;

3.关于order by 的用法说明:
先看简单的说明例子:
IEnumerable<EmployeeDetails> matches;
matches = from employee in employees
orderby employee.LastName, employee.FirstName
select employee;

其中,排序的类型一般是实现了IComparable接口的,如date,string,numeric data等.Net的数据类型都实现了该接口。但是,我们也可以使用没有实现IComparable接口的类型,后面再对其进行详细说明。



分享到:
评论

相关推荐

    讲述ASP.NET中LINQ中文教程

    讲述LINQ的基本用法的,ASP.NET的重要用法

    asp.net 3.0 linq 新用法

    本篇将深入探讨ASP.NET 3.0中LINQ的新用法及其在实际开发中的应用。 **一、LINQ简介** LINQ(Language Integrated Query)是一种在.NET Framework中集成的查询语言,它允许开发者使用一致的语法进行数据库、XML、...

    ASP.NET MVC+LINQ TO SQL登陆

    ASP.NET MVC+LINQ TO SQL登陆

    简单ASP.NET 3.5 LINQ 实例 学习

    3. **C#与VB.NET中的LINQ**:学习如何在C#或VB.NET中使用LINQ查询表达式和方法语法。`Default.aspx.cs`是C#后台代码文件,其中可能包含使用LINQ的示例代码。 4. **数据库交互**:通过`App_Data`目录下的`DB_51aspx`...

    asp.net3.5 linq技术源码

    ASP.NET 3.5中的LINQ(Language Integrated Query,语言集成查询)技术是微软推出的一种强大的数据查询工具,它允许开发者使用类似SQL的语法在.NET编程语言中进行对象查询。这个压缩包文件包含了一系列关于LINQ在ASP...

    ASP.NET中Linq的一些总结和例子

    ASP.NET中Linq的一些总结和例子《==========共享

    ASP.NET MVC Linq to SQL 实现数据库增删改(源代码)ASP.NET MVC Linq to SQL 实现数据库增删改(源代码) ASP.NET MVC 分页控件

    以上代码展示了如何在ASP.NET MVC项目中使用Linq to SQL处理数据库操作,以及如何实现简单的分页功能。通过这种方式,你可以创建一个高效且易于维护的Web应用,同时提高用户在浏览大量数据时的体验。

    ASP.NET 3.5与LINQ.rar

    总结起来,这个压缩包提供了关于ASP.NET 3.5中使用LINQ的详尽指南,无论你是初学者还是有经验的开发者,都能从中受益。通过学习这些知识,你将能够更高效地管理和操作数据,提高你的ASP.NET应用程序的性能和用户体验...

    VB.NET LINQ各项查询操作示例

    这是accessoft上,作者:煮江品茶 写的一个LINQ例子,这几天找了很多参考都不是很好,今天找到这...LINQ是VS中的一个通用的数据查询技术,该技术简化了对SQL、XML等数据的查询。本示例介绍LINQ的标准查询符的使用方法。

    ExtJs、ASP.net运用Linq to SQL与SQL储存过程交互.

    ExtJs、ASP.net运用Linq to SQL与SQL储存过程交互

    ASP.NET中LINQ+热键TAB的简单使用

    ASP.NET中LINQ+热键TAB的简单使用,介绍了用“LINQ TO SQL类”+数据展示控件+LINQ数据源展示数据;热键TAB,介绍的是网页中多文本框输入时,用鼠标进行切换效率低,使用热键TAB,就可以提高输入效率。

    一个简单的基于ASP.NET3.5 +LINQ的实例程序代码

    【标题】"一个简单的基于ASP.NET3.5 +LINQ的实例程序...通过学习这个实例,开发者可以了解到如何在ASP.NET3.5环境中有效地运用LINQ,提高代码的可读性和效率,同时掌握如何将这些技术整合到实际的Web应用程序开发中。

    asp.net包括LINQ和c#面试题

    非常全面的c#面试题技术 有LINQ c# asp.net的 经典实用

    三层架构Asp.Net+MVC+Linq to SQL2005 入门实例

    在这个Asp.Net+MVC+Linq to SQL2005的入门实例中,我们将深入探讨这三个层面及其相互作用。 1. 表现层(Presentation Layer): 这是用户与应用交互的部分,通常由ASP.NET MVC框架负责。MVC(Model-View-...

    ASP.NET MVC+LINQ TO SQL+MvcPager分页

    以上知识点是基于标题和描述中提到的"ASP.NET MVC+LINQ TO SQL+MvcPager分页",它们构成了一个Web应用程序开发的核心技术栈。通过深入理解和实践这些技术,你可以构建出高效、易于维护的Web应用。

    .net3.5 Linq 学习 超快的执行速度

     LINQ 提供了一条更常规的途径即给 .Net Framework 添加一些可以应用于所有信息源( all sources of information )的具有多种用途( general-purpose )的语法查询特性( query facilities ),这是比向开发语言和...

    asp.net mvc linq to sql 增删改查 基本操作

    在ASP.NET MVC中使用Linq to SQL进行数据库操作,可以极大地提高开发效率和代码的可读性。以下是一些关于ASP.NET MVC结合Linq to SQL进行增删改查的基本操作的知识点: 1. **创建数据库上下文(DataContext)**:...

    C#(ASP.NET 3.0/3.5)中LINQ技术文档

    **C#(ASP.NET 3.0/3.5)中的LINQ技术是.NET Framework 3.0和3.5版本引入的一项革命性特性,它代表了Language Integrated Query(语言集成查询)的缩写。LINQ允许开发人员使用相同的查询语法在各种数据源上进行操作,...

    Asp.net MVC Linq 增删改查 基础代码

    Asp.net MVC Linq 增删改查 基础代码 工具要求:Vs2012 ,SQL server 2008 注:由于我自己也是初学,在公司学习的.... 所以共同学习吧!

    ASP.NET MVC LINQ BBS源码

    ASP.NET MVC1.0 BBS 教学版源码 框架:.NET Framework 3.5 SP1 语言:C# 开发环境:Visual Studion 2008 SP1 数据库:MSSQL 2005 前台功能:实现发贴、回复、注册、登录 (大部份功能使用jQuery 实现Ajax 操作,...

Global site tag (gtag.js) - Google Analytics