关闭实体框架中的事务

本文关键字:事务 框架 实体 | 更新日期: 2023-09-27 18:24:49

我们正在尝试实现一个快速原型,以证明实体框架是可能的。。。

我们有一个InformixDB不支持事务——有可能使用实体框架吗?

我们有一个工作模型和工作提供者,但似乎我们无法在没有事务的情况下执行CRUD查询——我们甚至试图对它们进行超压。。。

[Test]
public void TestMethod1()
{
    entities ent = new entities();
    var a = ent.brands.Select(x => x);
    using (TransactionScope trans = new TransactionScope(
                                          TransactionScopeOption.Suppress))
    {
         ent.brands.AddObject(new brand() { br_name = "New Test Brand" });
         ent.SaveChanges();
    }
}

我们得到的错误如下:

在提供程序连接上启动事务时出错。有关详细信息,请参阅内部异常。

我环顾四周,建议使用抑制,但似乎不起作用。。。有什么想法吗?

关闭实体框架中的事务

要回答您的主要问题(我对Informix一无所知),您不能支持事务。如果SaveChanges没有找到现有的事务,它将始终在提供者上启动一个新的事务。在事务中运行SaveChanges是EF的关键特性。

Btw。我检查了IBM Data Provider,发现只支持EFv1,所以EFv4和EFv4.1中的功能不必工作(除非有更新版本的提供程序)。