您的位置:知识库 » 数据库

走进Linq-Linq to SQL感性认识篇

作者: 横刀天笑  来源: 博客园  发布时间: 2008-09-23 18:52  阅读: 10692 次  推荐: 8   原文链接   [收藏]  
[1] 走进Linq-Linq to SQL感性认识篇
[2] 走进Linq-Linq to SQL感性认识篇

系列文章导航:

走进Linq--Linq横空出世篇

走进Linq-辉煌的背后

走进Linq-Linq大观园

不能不说的C#特性-对象集合初始化器

不能不说的C#特性-匿名类型与隐式类型局部变量

不能不说的C#特性-扩展方法

不能不说的C#特性-匿名方法和Lambda表达式

不能不说的C#特性-迭代器(上)及一些研究过程中的副产品

不能不说的C#特性-迭代器(下),yield以及流的延迟计算

走进Linq-Linq to Objects(上)基础篇

走进Linq-Linq to Objects(下)实例篇

走进Linq-Linq to SQL感性认识篇

走进Linq-Linq to SQL How do I(1)

走进Linq-Linq to SQL How do I(2)

走进Linq-Linq to SQL How do I(3)

走进Linq-How do I(4)拾遗补零篇第一节

走进Linq-Linq to SQL源代码赏析 Table的获取过程

走进Linq-Linq to SQL源代码赏析之Provider的初始化

走进Linq-Linq to SQL源代码赏析,通过Linq to SQL看Linq


(看到这里你也许会命名什么叫入侵式了吧,入侵式就是为了达到目的,对代码做了一些改变,比如这里的Table,Column

User类上面加的Table表示这个类和一个表映射,表名为Users,注意,如果表名和类名是一样的,这个Name属性是无需指定的,在属性或共有字段上加Column表示这个属性和数据库表里的字段映射,如果属性名和数据库表字段名一直只需要加个Column就够了,如果这个属性在数据库表里是个主键,那么将其IsPrimaryKey设置为true就可以了。

映射建好了,该是Linq上场的时候了(我们要从数据库表里查询出用户名以”yu”开头的所有用户)

//我们给定一个数据库连接字符串实例化一个DataContext对象
DataContext dbContext = new DataContext(connectionString);

dbContext.Log 
= Console.Out;
//调用DataContext的GetTable方法,获取一个Table对象
Table<User> users = dbContext.GetTable<User>();
//由于Table继承自IEnumerable,所以,前面所介绍的那些查询表达式在这里也使用了
var result = from user in users
           
where user.UserName.StartsWith("yu")
           select user;

//遍历结果集
foreach (var u in result)
    Console.WriteLine(u.UserName);

很妙吧,没有了以前重复又重复的DbCommand,DbConnection代码,好像C#直接面向数据库一样。

在上面的代码里还有一行特殊的代码:dbContext.Log = Console.Out;,它会将你的C#查询表达式最后产生的SQL语句输出来,这样就更方便你调试和优化了。

后记

本篇只是对Linq to SQL做一个大致的介绍,使大家对Linq to SQL有个全面的感性认识,在下一节会用大量的实例介绍Linq to SQL的方方面面。

从这一篇起我会由浅入深的介绍Linq to SQL,如果你已经对Linq to SQL有使用经验可以轻轻点击以下你的浏览器右上角的叉叉。或者你觉得我说的有地方有错误,有误导大家的嫌疑,烦请不要吝啬你的memoryCPU给我写个评语,我将不胜感激。

[第1页][第2页]
8
0
标签:LINQ LINQ to SQL

数据库热门文章

    数据库最新文章

      最新新闻

        热门新闻