LINQ to SQL

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

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

数据上下文

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<UserInfo> users
= db.ExecuteQuery<UserInfo
//显示查询的结果
foreach (UserInfo u in users)
{
Response.Wite(用户名称:" + u.Usemame +"<br/>");
}
}

显示结果为:



处理Table<T>类型的结果

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

方法名称说明
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 +"<br/>");
 //创建一个新的角色
  Role role= new Role{ RoleName="新的角色"};
  //将新的角色添加到数据库中
  db.Role.InsertOnSubmit(role);
db.SubmitChanges();
Response.Write("添加后角色的数量:"+db.Role.Count());
}

显示结果为:

添加实体的Add()方法

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

创建LinqDBDataContext类的实例db。

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

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

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

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

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

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

private void ShowEntitySetadd (){
//创建LinqDB 数据库上下文的实例
LinqDBDataContext db = new LinqDBDataContext(LinqSystem.LinqDBConnectionString);
//获取第一个用户的商品信息
EntitySet<Product> productsforFirstUser
db.Userlnfo.First<UserInfo>().Product;
//显示商品数量
Response.Write(添加商品之前的数量:"
+ productsforFirstUser.Count.ToString +" <br/>");
//创建一个新对象
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 +" <br/>");
}

显示结果为:


简单查询

查询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.添加数据模型


3.修改Global.asax文件


4.运行显示







评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值