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类的方法
- 执行SQL命令的ExecuteCommand()方法。如图1-1
- 执行SQL查询的ExecuteQuery()方法。如图1-2
- 提交更改到数据库的SubmitChanges()方法。如图1-3
- 获取表集合的GetTable()方法。
- 获取已修改对象的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>类的实例是否加载或分配关系数据。
运行结果如下: