LINQ to SQL

一、LINQ to SQL概述。

  • LINQ to SQL是LINQ中最重要的一个组件,为NET.Framwork3.5所支持,他可以为关系数据库提供一个对象模型。
  • LINQ to SQL最重要的一个功能就是为数据库创建一个对象模型(基于NET.框架的类组成),并将该对象模型映射到数据库中的相应对象。
1.1  使用VS创建DBML文件。

1.2  数据上下文

  • DataContext又称数据上下文,它为LINQ to SQL提供操作数据库的入口。使用LINQ to SQL操作数据库,首先需要为该数据创建一个自DataContext类的自定义的数据上下文类。
  • DataContext类的方法
  1. 执行SQL命令的ExecuteCommand()方法。如图1-1
  2. 执行SQL查询的ExecuteQuery()方法。如图1-2
  3. 提交更改到数据库的SubmitChanges()方法。如图1-3
  4. 获取表集合的GetTable()方法。
  5. 获取已修改对象的GetChangeSet()方法,它有3个只读集合。
  • Deletes属性,已从ChangeSet中删除实体。
  • Inserts属性,以插入到ChangeSet中的实体。
  • Updates属性,已在ChangeSet中更新实体。
图1-1
图1-2

图1-3

二、泛型接口

2.1  处理Table<T>类型的结果

使用Table<T>能够方便的操作数据库中的数据,如插入数据到数据库,修改数据库中的数据,删除数据库中的数据,如图1-4


图1-4

表中的四种方法仅仅只是改变了Table<T>中T的状态,并没有真正的将数据操作的结果写入到数据库中,提交到数据库必须调用相应数据上下文的SubmitChanges();

2.2  处理EntitySet<T>类型的结果

EntitySet<T>用来描述实体类中包含的其他实体的集合。EntitySet<T>类包含了四个属性和多种方法,如获取实体数量的Count属性、获取或设置实体项集合的Inten属性、添加实体的Add()方法,如图1-5,移除实体的Remove()方法,如图1-6等。


图1-5


图1-6


2.3 处理EntityRef<T>类型的结果

EntityRef<T>类用来处理一对多关系中的数据。EbtityRef<T>类包含两个属性:Entity和HasLoadedOrAssignedValue.其中Entity属性可以获取EntityRef<T>类的实例的实体,HasLoadedOrAssignedValue属性表示EntityRef<T>类的实例是否加载或分配关系数据。

运行结果如下:



2.4  处理ISingleResult<T>类型的结果

ISingleResult<T>泛型接口表示具有单个返回序列的映射函数的结果。在SQL数据实体中,该类常常使用ISingleResult<T>泛型接口来保存存储过程检索数据库的结果。特别的,当存储过程返回多个检索结果时。

猜你喜欢

转载自blog.csdn.net/songyayaya/article/details/79788308