LINK to SQL
一.LINQ to SQL 概述
LINQ to SQL对象模型和SQL Server 数据库中的对象映射关系
LINQ to SQL对象模型的基本元素 | SQL Server数据库中的对象 |
实体类 | 表 |
属性或字段 | 列 |
关联 | 外键关系 |
方法 | 存储过程或函数 |
二.数据上下文
2.1DataContext概述
DataContext类是一个LINQ to SQL类,它充当SQL Servr数据库与映射到该数据库的LINQ to SQL实体类之间的管道,它包含用于连接数据库以及操作数据库数据的连接字符串信息和方法。
2.2DataContext类的属性
DataContext类包括多个属性,如链接属性Connection,事物属性Transaction等。
2.2.1连接属性Connection
Connection属性可以获取DataContext类的实例的连接(类型为DbConnection)。值得注意的是,用户获取该属性的值(即连接对象)之后,该连接对象的默认状态是关闭的。因此,用户如果要使用该连接对象,则需要显示打开该连接对象的状态。
2.2.2事物属性Transaction
(1)显式事务。如果DataContext 类的实例显式设置了Transaction属性的值,那么,DataContext类的实例调用SubmitChanges()方法时将在同一个事务上进行。
(2)隐式事务。当DataContext类的实例调用SubmitChanges()方法时,LINQ to SQL会检查该方法是否在已经指定的事务内,如果不是,则LINQ to SQL 将启动本地事务,并使用此事务执行所生成的SQL命令。
(3)显式可分发事务。DataContext类的实例可以在Transaction属性指定的事务内调用LINQ to SQL API,而不会创建新的事务。
2.2.3执行命令的最大时间属性CommandTimeout
CommandTimeout 属性可以设置或获取DataContext类的实例的查询数据库操作的超时期限。该时间的单位为秒,默认值为30秒。有时,查询数据库操作可能需要很长的时间。此时,则需要增大该属性的值,以保证查询数据库的操作能够完成。
2.3DataContext类的方法
ExecuteCommand()方法能够执行执行指定的SQL语句,并通过该SQL语句来操作数据库。ExecuteCommand()方法返回一个整数值,即该SQL语句影响记录的数量。
三.处理Table<T>类型的结果
使用Table<T>能够方便的操作数据库中的数据,如插入数据到数据库,修改数据库中的数据,删除数据库中的数据。如下图:
方法名称 | 说明 |
DeleAllOnSubmit(TSubEntity) | 将集合中的说有实体置于pending delete状态 |
DeleteOnSubmit | 将此表中的实体置为pending delete 状态 |
InsertAllOnSubmit(TSubEntity) | 将集合中的所有处于pending insert 状态的实体添加到DataContext |
InsertOnSubit | 将处于pending insert 状态的实体添加到此Table(TEntity) |