LINQ to SQL概述
LINQ to SQL 是将对象关系映射到.NET框架中的一种实现。它可以将关系数据库(如SQL Server数据库)映射为.NET Farmework中的一些类。
LINQ to SQL是LINQ中 最重要的一个组件,为.NET Framework3.5支持,它可以为关系数据库提供一个对象模型,并在该对象模型基础上实现对数据的查询,添加,修改,删除等功能,即LINQ to SQL提供了用于将关系数据作为对象管理的运行时基础结构。
LINQ to SQL类映射到SQL Server数据库的表,这些LINQ to SQL类被称为“实体类”实体类中的属性或字段映射到SQL Server数据库中的表的列。实体类之间的关联映射到SQL Server数据库的外键关系。LINQ to SQL类中的方法映射为SQL Server数据库中的储存过程或函数。
数据上下文DataContext : LINQ查询:八大基本子句
Table<T>泛型接口 | 简单查询 |
EntitySet<T>泛型接口 | 复合查询 |
EntityRef<T>泛型接口 ISingleResult<T>泛型接口 | 聚合查询 分组查询 |
LINQ to SQL对象模型和SQL Server 数据库中的对象映射关系:
1,LINQ to SQL是LINQ中最重要的一个组建,为.NET Framework3.5及以上版本所支持,它可以为关系数据库提供一个对象模型。
2,LINQ to SQL最重要的一个功能就是为数据库创建一个对象模型(由基于.NET框架的类组成),并将该对象模型映射到数据库中的相应对象。
LINQ to SQL对象模型的基本元素 LINQ to SQL数据库中的对象
实体类 | 表 |
属性或字段 | 列 |
关联 | 外表关系 |
方法 | 存储过程或函数 |
1.实体类和数据库表
实体类和.NET Framework中的其他类比较相似。但是。实体类使用TableAttribute属性来描述其与数据库中表的关联关系。
[Table(Name="UserInfo")]
public class UserInfo{...}
2.属性或(字段)和数据库表中的列
下面的实例代码创建了一个名称为UserInfo的实体类,该实体类映射到LinqDB数据库中的UserInfo表。ID属性映射到UserInfo表的ID列,并且ID列为UserInfo表的主键。Username属性映射到UserInfo表中的Username列。
[Table(Name="UserInfo")]
public class UserInfo
{
private int iD;
private string username;
///<summary>
///映射ID列
///</summary>
[Columm(IsPrimaryKey=true)]
public int ID
{
get{return iD;}
set{id=value;}
}
///<summary>
///映射ID列
///</summary>
[Column]
public string Username
{
get{return username;}
set{username=value;}
}
...
}
下面的实例代码在UserInfo类中创建了一个名称为UserRole的关联,该关联映射到UserInfo和UserRole表的外键关系(UserInfo_UserRole).
[Table(Name="UserInfo")]
public calss UserInfo
{
...
private EntitySet <UserInfo>_UserRole;
[Association(Name="UserInfo_UserRole",Storage="_UserRole",OtherKey="UserID")]
private EntitySet<UserRole>UserRole
{
get{return_UserRole;}
set{_UserRole.Assign(value);}
}
...
}