LINQ to SQL
一、LINQ to SQL概述
1、LINQ to SQL是LINQ中最重要的一个组件,为.NET Framework 3.5所支持。
2、LINQ to SQL最重要的一个功能就是为SQL Server数据库创建一个对象模型(由基于.NET框架的类构成),并将该对象模型映射到SQL Server数据库中相应的对象。
二、数据上下文
1、DataContext又称为数据上下文,它是LINQ to SQL提供操作数据库的入口。
2、DataContext类包括多个属性:连接属性Connection、事务属性Transaction以及执行命令的最大时间属性CommandTimeout。
3、DataContext类的方法:
(1)执行SQL命令的ExecuteCommand()方法
(2)执行SQL查询的ExecuteQuery()方法
(3)提交更改到数据库的SubmitChanges()方法
(4)获取表集合的GetTable()方法
(5)获取已修改对象的GetChangSet()方法:
Deletes属性,已从ChangeSet中删除的实体
Inserts属性,以插入到ChangeSet中的实体
Updates属性,已在ChangeSet中更新的实体
三、处理Table<T>类型的结果
Table<T>主要操作数据库的方法:
DeleteAllOnSubmit(TSubEntity):将集合中的所有实体置于pending delete状态。
DeleteOnSubmit:将此表中的实体置为pending delete状态。
InsertAllOnSubmit(TSubEntity):将集合中所有处于pending insert状态的实体添加到DataContext。
InsertOnSubmit:将处于pending insert状态的实体添加到此Table(TEntity)。
四、处理EntitySet<T>类型的结果:
add()方法能够将元素或实体添加到EntitySet<T>集合中,位于EntitySet<T>集合的末尾处。
Remove()方法能够从EntitySet<T>集合中移除指定的元素或实体。
RemoveAt()方法能够从EntitySet<T>集合中移除指定位置处的元素或实体。
Contains()方法能够判断在EntitySet<T>集合中是否包含指定的元素或实体。
五、处理EntityRef<T>类型的结果:
EntityRef<T>类用来处理一对多关系中的数据。
EntityRef<T>类包含2个属性:Entity和HasLoadedOrAssignedValue。
Entity属性可以获取EntityRef<T>类的实例的实体。
HasLoadedOrAssignedValue属性表示EntityRef<T>类的实例是否加载或分配关系数据。
六、处理ISingleResult<T>类型的结果:
ISingleResult<T>泛型接口表示具有单个返回序列的映射函数的结果。
七、查询数据库中的数据
1、简单查询、复杂查询、聚合查询和分组查询
2、from...in子句:指定查询操作的数据源和范围变量。
select子句:指定查询结果的类型和表现形式。
where子句:筛选元素的逻辑条件,一般由逻辑运算符组成。
group...by子句:对查询进行分组。
order...by子句:对查询结果进行排序。
join子句:连接多个查询操作的数据源。
let子句:引入用于储存查询表达式中的子表达式结果的范围变量。
into:提供一个临时标识符,充当对join、group和select子句的结果。