ASP.NET LINQ to SQL

                                                            LINQ to SQL

1.1LINQ to SQL概述

LINQ to SQL最重要的一个功能就是为SQL Server数据库创建一个对象模型(由基于.NET框架的类组成),并将该对象模型映射到SQL Server数据库中相应的对象(如表、列、外键关系、存储过程、函数等)。

LINQ to SQL对象模型和SQL Server数据库中的对象映射关系是:


1.实体类和数据库

实体类和.NET Famework中的其他类型比较相似。但是,实体类使用TableAttribute属性来描述其与数据库中表的关联关系。

2.属性或(字段)和数据库表中的列

如果一个实体类映射到数据库中的表,那么他的属性或字段可以被映射到数据库表中的列。其中,它们之间的映射关系使用ColumnAttribute属性表示。

3.关联和数据库外键关系

在LINQ to SQL中,LinqDB数据库中的外键关系通过AssociationAttribute属性表示。

1.2.使用VS创建DBML


1.3.数据上下文

DataContext又称数据上下文,他为LINQ to SQL提供操作数据库的入口。如果使用LINQ to SQL操作数据库,首先需要为该数据库创建一个继承于DataContext类的自定义的 数据上下文类。

例如:


1.4.处理Table<T>类型的结果

Table<T>主要操作数据库的方法

(1).DeleteAllOnSubmit(TSubEntity)将集合中的所有实体置于pending delete 状态。

(2).DeleteOnSubmit将此表的实体置为pending delete 状态。

(3).InsertAllOnSubmit(TSubEntity)将集合中所有处于pending delete 状态的实体添加到DataContext。

(4).InsertOnSubmit将处于pending delete 状态的实体添加到Table(TEntity)。

注意:这四种方法仅仅只是改变了Table<T>中T的状态,并没有真正的将数据库操作的结果写入到数据库中。

例如:


1.5.处理EntitySet<T>类型的结果

(1).Add()方法能够将元素或实体添加到EntitySet<T>集合末尾。

(2).Remove()方法能够从EntitySet<T>中移除指定的元素或实体。

(3).RemoveAt()方法能够从EntitySet<T>中移除指定位置处的元素或实体。

(4).Contains()方法能够判断在EntitySet<T>中是否包含指定的元素或实体。

例如:


1.6.处理EntityRef<T>类型的结果

EntityRef<T>处理一对多关系的数据


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

ISingleResult<T>泛型接口表示具有单个返回序列的映射函数的结果