LINQ to SQL 对象模型
LINQ to SQL是LINQ中最重要的一个组件,为.NET Framework3.5所支持。它可以为关系数据库提供一个对象模型,并在该对象模型基础上实现对数据的查询、修改、删除等功能。
6.1 LINQ to SQL概述
LINQ to SQL最重要的一个功能是为SQL Server数据库创建一个对象模型(由基于.NET框架的类组成)。
LINQ to SQL对象模型和SQL Server数据库中的对象的映射关系
LINQ to SQL对象模型的基本元素 |
SQL Server数据库中的对象 |
实体类 |
表 |
属性(或字段) |
列 |
关联 |
外键关系 |
方法 |
存储过程或方法 |
6.2 使用Visual Studio 2008创建DBML文件
(1) 创建DBML文件
(2) LINQ代码生成工具SqlMetail.exe
代码生成工具可以为LINQ to SQL组件生成代码和映射,主要包括以下3个操作:
. 生成源代码和映射属性或映射文件
. 生成供自定义使用的中间数据库标记语言文件(后缀名为.dbml)
. 生成代码和映射属性或映射文件
(3) 创建xxx表的实体类
(4) 创建xxx表的实体类的属性
(5) 创建数据库的数据上下文的方法
6.3 处理EntitySet<T>类型的结果
EntitySet<T>类包含4个属性和多个方法。如获取实体数量的Count属性,获取或设置实体项集合的Item属性,添加实体的Add()方法,移除实体的Remove()方法
(1) Count属性:计算实体数量的
(2) Item属性:实体集合项的
(3) HasLoadedOrAssignedValues属性:是否已加载或分配值的
(4) IsDeferred属性:是否具有延迟查询的
(5) Add()方法:添加实体的
(6) AddRange()方法:添加实体集合的
(7) Insert()方法:插入实体的
(8) Remove()方法:移除实体的
(9) RemoveAt()方法:移除指定索引的实体
(10) Clear()方法:移除所有实体的
(11) IndexOf()方法:查找实体索引的
(12) Contains()方法:查找是否包含实体的
(13) Assign()方法:分配集合的
(14) 返回枚举的GetEnumerator()方法
6.4 处理EntityRef<T>类型的结果
用来处理一对多关系中的数据。
(1) Enitty属性: 获取EntityRef<T>类的实例的实体
(2) HasLoadedOrAssignedValues属性:EntityRef<T>类的实例是否加载或分配关
系数据
6.5 处理IExecuteResult类型的结果
(1) GetParameterValue():获取指定索引的参数的值
(2) ReturnValue属性:返回执行的查询的返回值或结果,返回值或结果的类型是object
6.6 处理ISingleResult<T>类型的结果
ISingleResult<T>泛型接口表示具有单个返回序列的映射函数的结果。在SQL数据
实体类中,该类常常使用ISingleResult<T>泛型接口来保存存储过程(或函数等)检索数
据库的结果。
6.7 处理IMultipleResult类型的结果
有时,一些SQL语句或存储过程返回具有多个结构的结果。例如,一个存储过程中
包含两个SELECT子句,这两个SELECT子句的结果的结构是不一样的。此时,可以使用
IMultipleResult接口来处理该存储过程的结果。