【发布时间】:2011-07-07 16:25:36
【问题描述】:
我正在尝试创建一个事务来环绕多个 LINQ to SQL SubmitChanges() 调用。
代码
System.Data.Common.DbTransaction trans = null;
using (DbContext context = new DbContext())
{
context.Connection.Open()
trans = context.Connection.BeginTransaction();
context.Transaction = trans; // <-- ERROR HERE: Cannot be done!
.... // Several calls to delete objects with context.SaveChanges()
trans.Commit();
}
问题
在我们的数据库架构中(早于我,并且与应用程序密切相关),我们有一个名为 Transaction 的表。
这意味着上面代码中的 Transaction 属性实际上不是 IDbTransaction 类型,我无法将 trans 对象分配给 context.Transaction。 context.Transaction 实际上是 Table<Transaction> 类型。
问题
鉴于当前不可更改的事实,我有一个名为 Transaction 的表,如何将事务分配给我的上下文?
虽然我熟悉 LINQ to SQL,但这是我第一次在多个调用中使用事务,所以我也准备好接受我一开始可能没有以正确的方式执行此操作,并且冲突的表名甚至可能不是问题......
【问题讨论】:
标签: c# linq-to-sql transactions