私は MVC3 アプリケーションに取り組んでおり、Oracle データベース (11G R2) にリンクされた Entity Framework を使用しています。内で単一のオブジェクト コンテキストを使用しようとすると、問題が発生しますTransactionScope
。
コードは次のとおりです。
using (TransactionScope scope = new TransactionScope())
{
using (Entities context = new Entities())
{
// Right insert
T_RIGRIGHT entity1 = new T_RIGRIGHT()
{
RIGCODE = "test1",
RIGINSERTLOGIN = "aco",
RIGINSERTDATE = DateTime.Now,
RIGUPDATELOGIN = "aco",
RIGUPDATEDATE = DateTime.Now
};
context.AddToT_RIGRIGHT(entity1);
context.SaveChanges();
// Right/Profile insert
T_RIPRIGHTPROFILE entity2 = new T_RIPRIGHTPROFILE()
{
PROID = 3,
RIGID = entity1.RIGID,
RIPINSERTLOGIN = "aco",
RIPINSERTDATE = DateTime.Now,
RIPUPDATELOGIN = "aco",
RIPUPDATEDATE = DateTime.Now
};
context.AddToT_RIPRIGHTPROFILE(entity2);
context.SaveChanges(); // SaveChanges fails due to the FK constraint on table
}
scope.Complete();
}
コードを説明しましょう...
まずentity1
、T_RIGRIGHT
要素と呼ばれるエンティティを作成します。T_RIPRIGHTPROFILE
以前に作成した T_RIGRIGHT 要素の ID を使用する要素をインスタンス化します。
実行は 2 番目に失敗しcontext.SaveChanges()
、例外はテーブルの外部キー制約に関するものですT_RIPRIGHTPROFILE
( が必要T_RIGRIGHT
です)。
私の説明が十分に明確であることを願っています
それを機能させる方法はありますか?
PS : 英語は私の母国語ではないため、申し訳ありません。