Linq TO SQL中ADO.NET与Linq的整合使用
2007-11-27 09:58
507 查看
现在遇到一个问题,我有一部分代码是用ADO.NET写的,我想加入Linq To SQL怎么办?
看下面代码:
1 string connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=c:\northwind.mdf;
2 Integrated Security=True; Connect Timeout=30; User Instance=True";
3 SqlConnection nwindConn = new SqlConnection(connString);//创建一个链接对象
4 nwindConn.Open();
5
6 Northwnd interop_db = new Northwnd(nwindConn);//创建DataContext对象
7
8 SqlTransaction nwindTxn = nwindConn.BeginTransaction();//创建一个事务
9
10 try
11 {
12 SqlCommand cmd = new SqlCommand(
13 "UPDATE Products SET QuantityPerUnit = 'single item' WHERE ProductID = 3");
14 cmd.Connection = nwindConn;
15 cmd.Transaction = nwindTxn;
16 cmd.ExecuteNonQuery();//使用ADO.NET执行更新操作
17
18 interop_db.Transaction = nwindTxn;//给DataContext添加一个事务
19
20 Product prod1 = interop_db.Products
21 .First(p => p.ProductID == 4);
22 Product prod2 = interop_db.Products
23 .First(p => p.ProductID == 5);
24 prod1.UnitsInStock -= 3;
25 prod2.UnitsInStock -= 5;
26
27 interop_db.SubmitChanges();//执行操作
28
29 nwindTxn.Commit();//提交事务
30 }
31 catch (Exception e)
32 {
33 Console.WriteLine(e.Message);
34 Console.WriteLine("Error submitting changes all changes rolled back.");
35 }
36
37 nwindConn.Close();
Northwnd 是一个DataContext对象,好比我们创建Linq中的xxxxDataContext对象一样.
看到代码是不是感觉整合起来是那么的简单?
那么为什么两个东西可以整合到一起呢?因为 LINQ To SQL 是 ADO.NET 系列技术的一部分,是基于由 ADO.NET 提供的服务,您就可以重复使用 ADO.NET 命令和一个 DataContext 之间的连接.
再给一个非常直观的方法.在Linq中执行一条SQL语句使用以下代码:
1 DataContext.ExecuteCommand("UPDATE Products SET UnitPrice = UnitPrice + 1.00");
很熟悉吧.是不是有点像企业库的SQL操作?
大家应该都知道Linq To SQL是生成了一连串的SQL字符串,最后执行操作的,实际上是对ADO.NET的一个封装而已.
看下面代码:
1 string connString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=c:\northwind.mdf;
2 Integrated Security=True; Connect Timeout=30; User Instance=True";
3 SqlConnection nwindConn = new SqlConnection(connString);//创建一个链接对象
4 nwindConn.Open();
5
6 Northwnd interop_db = new Northwnd(nwindConn);//创建DataContext对象
7
8 SqlTransaction nwindTxn = nwindConn.BeginTransaction();//创建一个事务
9
10 try
11 {
12 SqlCommand cmd = new SqlCommand(
13 "UPDATE Products SET QuantityPerUnit = 'single item' WHERE ProductID = 3");
14 cmd.Connection = nwindConn;
15 cmd.Transaction = nwindTxn;
16 cmd.ExecuteNonQuery();//使用ADO.NET执行更新操作
17
18 interop_db.Transaction = nwindTxn;//给DataContext添加一个事务
19
20 Product prod1 = interop_db.Products
21 .First(p => p.ProductID == 4);
22 Product prod2 = interop_db.Products
23 .First(p => p.ProductID == 5);
24 prod1.UnitsInStock -= 3;
25 prod2.UnitsInStock -= 5;
26
27 interop_db.SubmitChanges();//执行操作
28
29 nwindTxn.Commit();//提交事务
30 }
31 catch (Exception e)
32 {
33 Console.WriteLine(e.Message);
34 Console.WriteLine("Error submitting changes all changes rolled back.");
35 }
36
37 nwindConn.Close();
Northwnd 是一个DataContext对象,好比我们创建Linq中的xxxxDataContext对象一样.
看到代码是不是感觉整合起来是那么的简单?
那么为什么两个东西可以整合到一起呢?因为 LINQ To SQL 是 ADO.NET 系列技术的一部分,是基于由 ADO.NET 提供的服务,您就可以重复使用 ADO.NET 命令和一个 DataContext 之间的连接.
再给一个非常直观的方法.在Linq中执行一条SQL语句使用以下代码:
1 DataContext.ExecuteCommand("UPDATE Products SET UnitPrice = UnitPrice + 1.00");
很熟悉吧.是不是有点像企业库的SQL操作?
大家应该都知道Linq To SQL是生成了一连串的SQL字符串,最后执行操作的,实际上是对ADO.NET的一个封装而已.
相关文章推荐
- Linq TO SQL中ADO.NET与Linq的整合使用
- 分别使用ADO.Net Entity Data Model 和Linq to Sql 建立数据访问层
- Silverlight + WCF使用Linq to SQL以及ADO.NET Entity Data Model更新数据库子表方法
- ADO.NET Linq To SQl与Data Entity 的使用比较
- Silverlight + WCF使用Linq to SQL以及ADO.NET Entity Data Model更新数
- (转)ADO.net,Linq to SQL和Entity Framework性能实测分析
- 【转载】ADO.NET与ORM的比较(3):Linq to SQL实现CRUD
- ADO.Net Linq to SQL and Linq to Entities Note
- LINQ to SQL(LINQ2SQL) vs. ADO.NET Entity Framework
- LINQ to SQL语句(19)之ADO.NET与LINQ to SQL
- 如何在ASP.NET项目里面正确使用Linq to Sql
- 如何在ASP.NET项目里面正确使用Linq to Sql
- ADO.NET Entity framework 与 LINQ TO SQL 中的功能的一些差别(一)
- LINQ体验(13)——LINQ to SQL语句之运算符转换和ADO.NET与LINQ to SQL
- 在asp.net mvc中创建使用Linq to sql的分页控件[转]
- ADO.NET - Entity Data Model vs. LINQ To SQL
- LINQ to SQL语句之运算符转换和ADO.NET与LINQ to SQL
- EF Provider for Access/ODBC 以及ADO.Net Entity Framework 与Linq to SQL的比较和适用场景
- .NET RIA Services+ LINQ to SQL 的使用
- ADO.net,Linq to SQL和Entity Framework性能实测分析