我正在开发 MVC3 应用程序,并且正在使用链接到 Oracle 数据库 (11G R2) 的实体框架。当我尝试在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 的元素。
第二次执行失败,context.SaveChanges()
异常涉及表上的外键约束T_RIPRIGHTPROFILE
(需要 a T_RIGRIGHT
)。
希望我的解释足够清楚
有什么办法让它工作吗?
PS:我为我的英语道歉,因为它不是我的母语。