4

を取引をオフにすると - することが可能ですこれでEntity Frameworkを使用しますか?トランザクションをサポートしていない私たちは、InformixのDBを持っている...私たちは、何かがEntity Frameworkを持つことも可能であることを証明するために迅速なプロトタイプを実装しようとしているエンティティフレームワークで</p> <p>を

私たちは、ワーキングモデルを持っている、と作業プロバイダーが、我々がで蹴る取引せずにCRUDクエリを実行することができていないようだ - 私たちも彼らをsurpressしようとした...

[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(); 
    } 
} 

表示されるエラーは次のとおりです。

プロバイダ接続でトランザクションを開始中にエラーが発生しました。詳細については、内部例外を参照してください。

私は周りを見回しましたが、何が示唆したことは抑制を使用することですが、それは動作していないようです...任意のアイデア?

+0

内部例外とは何ですか? – nemesv

+0

"トランザクションをサポートしていないInformix DBがありますが、Informix 7でも(ネストされていない)トランザクションをサポートするIIRC - ?私はsupressフラグに従うことはドライバに任されていると思うので、これはIBM Data Providerのバグかもしれません。 – Rup

答えて

2

あなたの主な質問(私はInformixについて何も知らない)に答えるには、トランザクションを甘やかすことはできません。 SaveChangesが既存のトランザクションを見つけられない場合、プロバイダで常に新しいトランザクションが開始されます。トランザクションでSaveChangesを実行するのはEFの重要な機能です。

Btw。私はIBM Data Providerをチェックしましたが、EFv1のサポートしか見つからなかったので、EFv4とEFv4.1の機能は(プロバイダの新しいバージョンがない限り)動作する必要はありません。

+1

ありがとう、スタックトレースを見た後、常にbegin transaction ..と呼ばれるようです。:/ –

関連する問題

 関連する問題