您的位置:首页 > 编程语言 > ASP

ASP.NET------LINQ to SQL

2018-04-02 19:57 471 查看
1.LINQ to SQL概述

    1)LINQTO SQL是LINQ中最重要的一个组建,为.NET Framework3.5及以上版本所支持,它可以为关系数据库提供一个对象模型。    2)LINQTO SQL最重要的一个功能就是为数据库创建一个对象模型(由基于.NET框架的类组成),并将该对象模型映射到数据库中的相应对象。


2.使用vs2010 创建DBML






3.数据上下文      DataContext又称为数据上下文,它为LINQ to SQL提供操作数据库的入口。使用LINQ to SQL操作数据库,首先需要为该数据库创建一个继承自DataContext类的自定义的数据上下文类。      执行查询语句的ExecuteQuery()方法      执行非查询语句的ExecuteCommand()方法      提交更改到数据库的SubmitChanges()方法      获取表集合的GetTable()方法      获取以修改对象的GetChangeSet方法,它有3个自读集合      Deletes属性:已从ChangeSet中删除的实体      Inserts属性:已插入到ChangeSet中的实体      Updates属性:已在ChangeSet中更新的实体


4.处理Table<T>类型结果
4.1使用Table<T>能够方便的操作数据库中的数据      1)DeleteAllOnSubmit(TSubEntity)将集合中的所有实体置于Pending delete状态      2)DeleteOnSubmit()此表中的实体置于ending delete      3)InsertAllOnSubmit(TSubEntity)将集合中的所有处于Pending insert状态的实体添加到DataContext      4)InsertOnSubmit()将处于Pending insert状态的实体添加到Table<TEntity>
例:      LinqDBDataContext DB = new LinqDBDataContext();
Role role = new Role() { RoleName = "水军" };
DB.Role.InsertOnSubmit(role);
DB.SubmitChanges();//只改变Table<T>中T的状态,并没有真正的将数据操作的结果写入到数据库中;提交到数据库必须调用相应数据库上下文的SubmitChanages()方法

Response.Write("添加后角色个数:" + DB.Role.Count());
5.处理EntitySet<T>类型结果
5.1EntitySet<T>用来描述实体类中包含的其他实体的集合
1)Add()方法能够将元素或实体添加到EntitySet<T>集合末尾 2)Remove()方法能够从EntitySet<T>中移除指定的元素或实体 3)RemoveAt()方法能够从EntitySet<T>中移除指定位置处的元素或实体 4)Contains()方法能够判断在EntitySet<T>中是否包含指定的元素或实体
例:            //创建linqDB上下事例
LinqDBDataContext DB = new LinqDBDataContext();
//获取用户名Product
EntitySet<Product> productInfo = DB.UserInfo.First().Product;
//显示当前数量
Response.Write("删除前的数量:" + productInfo.Count + "<br />");
//移除最后一
productInfo.RemoveAt(productInfo.Count - 1);
//映射到数据库中
DB.SubmitChanges();
//打印删除后的数量
Response.Write("删除后的数量:" + productInfo.Count + "<br />");
6.处理EntityRef 的结果
     EntityRef<T>处理一对多关系中的数据



7.查询数据库中的数据

1)from… in子句:指定查询操作的数据源和范围变量2)select子句:指定查询结果的类型和表现形式3)where子句:筛选元素的逻辑条件,一般由逻辑运算符组成4)group… by子句:对查询进行分组5)orderby子句:对查询结果进行排序,可以为“升序”或“降序”6)join子句:连接多个查询操作的数据源7)let子句:引入用于存储查询表达式中的子表达式结果的范围变量8)into子句:提供一个临时标示符,充当对join、group或select子句的结果8.简单查询
//创建linqdb上下文事例
LinqDBDataContext DB = new LinqDBDataContext();
//创建linqdb上下文事例
var query = from user in DB.UserInfo
where user.ID < 5
select user;
//指定数据源
GridView1.DataSource = query;
//绑定数据源
GridView1.DataBind();
9.聚合查询          
//创建linqdb上下文事例
LinqDBDataContext DB = new LinqDBDataContext();
var query = from product in DB.Product
where product.Price == DB.Product.Max(p => p.Price)
select product;

GridView1.DataSource = query;
GridView1.DataBind();
10.复杂查询//创建linqdb上下文事例
LinqDBDataContext DB = new LinqDBDataContext();
//创建linqdb上下文事例
var query = from user in DB.UserInfo
join role in DB.UserRole on user.ID equals role.UserID
where user.ID < 5 && user.Username.Length >= 3
select new { ID = user.ID, Name = user.Username, Role = role.Role.RoleName };
//指定数据源
GridView1.DataSource = query;
//指定数据源
GridView1.DataBind();11.分组查询 //创建linqdb上下文事例
LinqDBDataContext DB = new LinqDBDataContext();
//linq分组
var query = from res in
(from user in DB.UserInfo
join order in DB.Order on user.ID equals order.UserId
select new {
9c59
ID = user.ID, Name = user.Username }
)
group res by res.ID;

foreach (var item in query)
{
//创建Gv
GridView gridView = new GridView();
gridView.DataSource = item;
gridView.DataBind();
//添加html元素
Page.Form.Controls.Add(gridView);
}12.动态数据库支持



选用ASP.NEToynaic data linq to sql 网站
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  LINQ to SQL