LINQ to SQL

linq to sql 对象模型和sql server 数据库中的对象映射关系:

LINQ to SQL 对象模型的基本元素 SQL Server 数据库中的对象
实体类
属性或字段
关联 外键关系
方法 存储过程或函数
LINQ to SQL_第1张图片

数据上下文

Datacontext 又称为数据上下文,它是LINQ to SQL提供操作数据库的入口、如果使用LINQ to SQL 操作数据库,则首先需要为该数据库创建一个继承于DataContext类的自定义的数据上下文类,并在该类中定义表,以及操作数据的方法。

DataContext类的方法

执行SQL命令的ExecuteQuery()方法

(1)创建LinqDBDataContext类的实例db。

(2)创建被执行的SQL语句。

(3)调用ExecuteQuery()方法执行上述指定的SQL语句,查询结果保存到result变量中。

(4)使用foreach语句显示result变量中的信息。

private void ExecuteSqlQuery( )
{
//创建LinqDB 数据库上下文的实例
lingDBDataContext db =new LinqDBDataContext(
LinqSystem.LinqDBConmetionStrin)
//创建SQL 语句
string sql="SELECT TOP 5 * FROM UserInfo";
IE numerable users
= db.ExecuteQuery");
}
}

显示结果为:



处理Table类型的结果

使用Table能够方便地操作数据库中的数据,如插入数据到数据库、修改数据库中的数据、删除数据库中的数据。

方法名称 说明
DeleteAllOnSubmit 将集合中的所有实体置于pending delete状态
DeleteOnSubmit 将此表中的实体置为pending 状态
InsertAllOnSubmit 将集合中所有处于pending insert 状态的实体添加到DataContext
InsertOnSubmit 将处于pending insert状态的实体添加到此Table(TEntity)

 private void InsertRoleO{
  //创建LinqDB 数据库的数据上下文实例
  LinqDBDataContex db= new LinqDBDataContext(
  LinqSystem.LinqDBConnectionString) ;
Response.Write("添加前角色的数量:“+ db.Role.CountO +"
"); //创建一个新的角色 Role role= new Role{ RoleName="新的角色"}; //将新的角色添加到数据库中 db.Role.InsertOnSubmit(role); db.SubmitChanges(); Response.Write("添加后角色的数量:"+db.Role.Count()); }

显示结果为:

添加实体的Add()方法

(1)Add()方法能够将元素或实体添加到EntitySet集合中。新添加的元素或实体位于EntitySet集合的末尾处。

创建LinqDBDataContext类的实例db。

(2)获取与第一个用户相关的商品信息,并保存为productsforFirstUser实例。其中,该实例的数据类型为EntitySet

显示添加新的实体之前productsforFirstUser实例中的实体的数量。

(3)创建一个新的实体P(实体的数据类型为Product),并设置了该实例的属性的值。

(4)调用Add()方法把实体p弹夹到productsforFirstUser实例中。

(5)调用SubmitChanges()方法将上述修改提交到数据库中。

(6)显示添加新的实体之后productsforFristUser实例中的实体的数量。

private void ShowEntitySetadd (){
//创建LinqDB 数据库上下文的实例
LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);
//获取第一个用户的商品信息
EntitySet productsforFirstUser
db.Userlnfo.First().Product;
//显示商品数量
Response.Write(添加商品之前的数量:"
+ productsforFirstUser.Count.ToString +" 
"); //创建一个新对象 Product p= new ProductO; p.Name="New Product" + DateTime.Now.ToSting() p.Price= 100.0m; p.LasterDate= DateTime.Now; p.PicureUrl= string.Empty; p.Remark= string.Empty; p.SaleNumber =0; p.Status= 1; p.Stock= 100; p.UserID= 1; p.ViewCount= 0; p.CategoryID= 2; p.CreateDate= DateTime.Now; //添加对象到productsforFirstUer 集合中 productsforFirstUser.Add(p); //提交更改到数据库 db.SubmitChanges(); //显示商品数量 Response.Write("添加商品之后的数量:" + productsforFirstUero +"
"); }

显示结果为:


简单查询

查询UserInfo表中ID列的值小于10,且Username列的值的长度大于5的数据。

var result=from user in db.UserInfo where user.ID<10&&user.Username.Length>5 select user;

动态数据支持

1.创建ASP.NET Dynamic Data 应用程序


2.添加数据模型

LINQ to SQL_第2张图片

3.修改Global.asax文件


4.运行显示

LINQ to SQL_第3张图片


LINQ to SQL_第4张图片

LINQ to SQL_第5张图片



你可能感兴趣的:(转载请注明出处,都嘉浩)