Stu*_*nar 5 c# informix entity-framework transactions transactionscope
我们正在尝试实现一个快速原型来证明实体框架可以实现某些功能......
我们有一个不支持事务的Informix数据库 - 是否可以使用实体框架?
我们有一个工作模型和工作提供者,但似乎我们不能在没有交易的情况下执行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();
}
}
Run Code Online (Sandbox Code Playgroud)
我们得到的错误如下:
在提供程序连接上启动事务时发生错误.有关详细信息,请参阅内部异常
我环顾四周,最近建议是使用抑制,但它似乎没有用......任何想法?
回答你的主要问题(我对 Informix 一无所知)——你不能抑制事务。如果SaveChanges没有找到现有的交易,它总是会在提供者上启动一个新的交易。在事务中运行是 EF 的关键特性SaveChanges。
顺便提一句。我检查了IBM Data Provider,发现仅支持 EFv1,因此 EFv4 和 EFv4.1 的功能不必工作(除非有较新版本的提供程序)。
| 归档时间: |
|
| 查看次数: |
2335 次 |
| 最近记录: |