走进Linq-Linq to SQL How do I(1)
[2] 走进Linq-Linq to SQL How do I(1)
[3] 走进Linq-Linq to SQL How do I(1)
[4] 走进Linq-Linq to SQL How do I(1)
[5] 走进Linq-Linq to SQL How do I(1)
系列文章导航:
不能不说的C#特性-迭代器(下),yield以及流的延迟计算
走进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-Linq to SQL源代码赏析 Table
走进Linq-Linq to SQL源代码赏析之Provider的初始化
走进Linq-Linq to SQL源代码赏析,通过Linq to SQL看Linq
Step 3:建立映射
对象也有了,关系也有了,那剩下的是什么?对,就是映射,我们怎样将对象映射到数据库表上?
我们从最简单的Post开始吧:
/// 博客文章类
/// 这个类和数据库里的posts表对应,由于
/// 类名和表名不一样,所以需要显式的指明Table特性的Name属性
/// 如果是一致的则无需指明了
///
[Table(Name="posts")]
public class Post
{
///
/// 文章Id
/// 这个对应posts表里的postid
/// 这个字段还是一个主键,所以Column特性的IsPrimaryKey属性为true
///
[Column(Name="postid",IsPrimaryKey=true)]
public int Id { get; set; }
///
/// 文章从属的博客
/// 这个对应着表里的blogid,名字一样所以只需要加个Column特性就可以了
/// 下面几个也是一样的意思
///
[Column]
public int BlogId { get; set; }
///
/// 标题
///
[Column]
public string Title { get; set; }
///
/// 内容
///
[Column]
public string Body { get; set; }
///
/// 发表时间
///
[Column]
public DateTime CreateDate { get; set; }
}
映射建完了,我们可以施加一些操作了。
在上一篇文章里介绍了,Linq to SQL的入口点是DataContext类,这个类主要做这么几件事情:
将我们用C#写的这个查询翻译成SQL语句,当然也并不是他全权负责翻译工作。
执行查询
连接的管理,这样我们就不用写啥Connection了啊,也不用担心数据库的连接和关闭的问题。
Step 4:执行查询
那我们就首先实例化一个DataContext类吧(为了好测试,使用一个控制台程序):
从这里可以看出,DataContext需要一个连接字符串,在DataContext里,我们打交道最多的就是GetTable()方法,这里的TEntity就是我们上面的那个Post了,带有映射的实体,这个方法返回一个Table对象:
Console.WriteLine(post.Title);