在 ALinq 中使用事务
2011-12-04 10:05 麦舒 阅读(660) 评论(1) 编辑 收藏 举报下面是 ALinq 使用事务的例子,比较简单,直接上代码:
var db = new AccessNorthwind("C:/Northwind.mdb") { Log = Console.Out };
db.DoTransaction(delegate()
{
db.Customers.Update(o => new Customer { CompanyName = "XXXX" }, o => o.CustomerID == "kkkkk");
db.Customers.Delete(o => o.CustomerID == "aaaaa");
});
public static partial class Utility
{
public static void DoTransaction(this DataContext dc, Action func)
{
dc.Connection.Open();
var tran = dc.Connection.BeginTransaction();
dc.Transaction = tran;
try
{
func();
tran.Commit();
}
catch
{
tran.Rollback();
throw;
}
finally
{
dc.Connection.Close();
}
}
}
有朋友问到,如果是用 SQL 的,怎么写, OK,再上一个 SQL 的例子:
var str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Northwind.mdb";
new OleDbConnection(str).DoTransaction(delegate(IDbCommand command)
{
command.CommandText = @"UPDATE [Customers]
SET [CompanyName] = @p0
WHERE [CustomerID] = @p1";
command.Parameters.Add(new OleDbParameter("@p0", "XXXXX"));
command.Parameters.Add(new OleDbParameter("@p1", "kkkkk"));
command.ExecuteNonQuery();
command.CommandText = @"DELETE FROM [Customers] WHERE [CustomerID] = @p0";
command.Parameters.Add(new OleDbParameter("@p0", "aaaaa"));
command.ExecuteNonQuery();
});
public static partial class Utility
{
public static void DoTransaction(this DataContext dc, Action func)
{
dc.Connection.Open();
var tran = dc.Connection.BeginTransaction();
dc.Transaction = tran;
try
{
func();
tran.Commit();
}
catch
{
tran.Rollback();
throw;
}
finally
{
dc.Connection.Close();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2010-12-04 Linq to Oracle 使用教程目录
2010-12-04 Linq to Oracle 使用教程(九)ALinq 的扩展
2010-12-04 Linq to Oracle 使用教程(七)将数据库的存储过程映射到方法
2010-12-04 Linq to Oracle 使用教程(八)使用 T4 模版生成代码
2010-12-04 Linq to Oracle 使用教程(六)将数据库的函数映射到方法
2010-12-04 Linq to Oracle 使用教程(五)使用 Xml 映射文件
2010-12-04 Linq to Oracle 使用教程(四)验证数据