没有合适的资源?快使用搜索试试~ 我知道了~
首页LINQ 教程(PDF版)
资源详情
资源评论
资源推荐

LINQ初体验之LINQ to Object........................................................................................................1
一步一步学Linq to sql(一):预备知识..............................................................................4
一步一步学Linq to sql(二):DataContext与实体 .............................................................9
一步一步学Linq to sql(三):增删改................................................................................15
一步一步学Linq to sql(四):查询句法............................................................................21
一步一步学Linq to sql(五):存储过程............................................................................35
一步一步学Linq to sql(六):探究特性............................................................................46
一步一步学Linq to sql(七):并发与事务........................................................................53
一步一步学Linq to sql(八):继承与关系........................................................................60
一步一步学Linq to sql(九):其它补充............................................................................69
一步一步学Linq to sql(十):分层构架的例子................................................................73
Linq To Xml学习............................................................................................................................80
Linq To Xml学习 - 1. 概述...............................................................................................80
Linq To Xml学习 - 2 编程概述........................................................................................82
C# 2008 学习笔记 - LINQ to XML .............................................................................................87
一、命名空间.........................................................................................................................87
二、编程方式创建XML文档................................................................................................88
三、使用 LINQ 查询创建XML文档 ..................................................................................89
四、加载和解析XML内容....................................................................................................90
六、遍历内存中的XML文档................................................................................................90
七、修改 XML文档..............................................................................................................92
使用linq to xml 快速创建自己的Rss..........................................................................................93
LINQ 初体验之 LINQ to Object
VS2008 的发布,最激动人心的不过是 LINQ 的诞生。

What‘s LINQ? Language Integrated Query 是也。说得再明白一些,这是
编程语言的一种新特性,能够将数据查询语句集成到编程语言中。目前,LINQ
支持的语言有 C# 和 VB。
为啥会有 LINQ,主要还是因为现在的数据格式越来越多,数据库、XML、
数组、哈希表……每一种都有自己操作数据的方式,学起来费事费力。于是,就
有了 LINQ 诞生的理由——以一种统一的方式操作各种数据源,减少数据访问的
复杂性。
LINQ 带来很多开发上的便利。首先,他可以利用 Visual Studio 这个强大的
IDE(这话决不是吹,Visual Studio 绝对是最好用的开发工具之一),至少用 Visual
Studio 来写 SQL 语句,可以有智能感知了,比起从前用查询分析器写存储过程
的感觉好多了!其次,它可以把数据当成一个对象来操作,即 Data == Object? 的
问题。
LINQ 目前可以对 XML, Object, SQL做数据访问,今后还会有 LINQ to Entity
的功能。
说来惭愧,我也是刚刚才接触 LINQ,先从最简单的开始吧,做一个 LINQ to
Object 的例子,实现一个对数组的操作。这个例子套用了今年 TechED 中海洋
兄讲的例子,在此声明。
在这个例子中,我会先通过 GetMethods 的方法,拿到 string 的所有方法,
接下来,就看 LINQ 的厉害了,这里是选出所有非静态的方法签名。
MethodInfo[] methods = typeof(string).GetMethods();
var result = from m in methods
where m.IsStatic != true
select m.Name;
foreach (var r in result)
{
Console.WriteLine(r.ToString());
}
Console.ReadLine();
例子虽然简单,确能从中看出 LINQ 的一些端倪。首先,var 是什么东东?
看起来,有点像 javascript 里面的弱类型的变量声明。但是,C#是强类型的,
尽管你用 var 来声明,编译器还是可以根据上下文推倒出它当前的类型。比如这
个例子里面,result 就是 IEnumerable 类型的。在这里面,写 IEnumerable 和
写 var 是一样效果的,显然,var 会简单得多。你不用考虑数据操作的返回值是
什么类型,还能享受强类型声明带来的方便实惠……

还有from m in methods 这句,m 是什么东西,m 是隐式声明的一个变量,
尽管没有声明,但编译器根据上下文,推断出它的类型是 MethodInfo 型的!.NET
Framework 3.5 的编译器的确是聪明了很多 ^^
上面这个例子运行起来的结果中有很多重复的记录,我们可以用 distinct()
来过滤掉重复的,和 SQL 还是很相似的说。
var result = (from m in methods
where m.IsStatic != true
select m.Name).Distinct();
或者用 group by 也可以
var result = from m in methods
where m.IsStatic != true
group m by m.Name;
但是这样子写,在输出的时候,显示的是
System.Linq.Lookup`2+Grouping[System.String,System.Reflection.MethodInf
o],所以,再做一些修改
var result = from m in methods
where m.IsStatic != true
group m by m.Name into g
select new { MethodName = g.Key, Overload = g.Count() };
这里面又有一些新鲜的了——select new { MethodName = g.Key,
Overload = g.Count() },先来看一个简单一些的例子:
class MyClass
{

public string MethodName { get; set; }
public int Overload { get; set; }
}
class Program
{
MyClass mc = new MyClass { MethodName = "aaa", Overload = 2 };
}
大括号里面的叫类初始化器,省去了构造函数,在 new 的同时,给对象的
属性赋值。
这时候再回来看看 select new { MethodName = g.Key, Overload =
g.Count() },跟这个类初始化器很像吧,但是它更偷懒,new 一个新对象,居然
连类名都不写。没错,这就叫匿名类。不用写类的声明,直接实例化。类的名字
是由编译器在编译的时候自动生成的,也就是说,你在 new 的时候根本不知道
这个类叫啥名,因此,这里就只能用 var 了。这就更看出 var 的厉害了,不仅仅
是写起来方便这么简单,在用到匿名类的时候,没有类名,这时候只能用 var,
嘿嘿!
一步一步学 Linq to sql(一):预备知识
2007-08-14 09:00 作者: lovecherry 出处: 天极网 责任编辑:>dizzarz
什么是Linq to sql
Linq to sql(或者叫 DLINQ)是 LINQ(.NET 语言集成查询)的一部分,全称基
于关系数据的 .NET 语言集成查询,用于以对象形式管理关系数据,并提供了
丰富的查询功能,它和 Linq to xml、Linq to objects、Linq to dataset、Linq to entities
等组成了强大的 LINQ。
要学好 LINQ 查询语法,就不得不先理解 C# 3.0 的一些新特性,下面一一简
单介绍。
隐含类型局部变量
var age = 26;
var username = "zhuye";
var userlist = new [] {"a","b","c"};
foreach(var user in userlist)
Console.WriteLine(user);

纯粹给懒人用的 var 关键字,告诉编译器(对于 CLR 来说,它是不会知道你
是否使用了 var,苦力是编译器出的),你自己推断它的类型吧,我不管了。但是
既然让编译器推断类型就必须声明的时候赋值,而且不能是 null 值。注意,这只
能用于局部变量,用于字段是不可以的。
匿名类型
var data = new {username = "zhuye",age = 26};
Console.WriteLine("username:{0} age:{1}", data.username, data.age);
匿名类型允许开发人员定义行内类型,无须显式定义类型。常和 var 配合使
用,var 用于声明匿名类型。定义一个临时的匿名类型在 LINQ 查询句法中非常
常见,我们可以很方便的实现对象的转换和投影。
扩展方法
public static class helper
{
public static string MD5Hash(this string s)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(s,"MD5");
}
public static bool In(this object o, IEnumerable b)
{
foreach(object obj in b)
{
if(obj==o)
return true;
}
return false;
}
}
// 调用扩展方法
Console.WriteLine("123456".MD5Hash());
Console.WriteLine("1".In(new[]{"1","2","3"}));
剩余94页未读,继续阅读















安全验证
文档复制为VIP权益,开通VIP直接复制

评论2