我正在开发 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:我为我的英语道歉,因为它不是我的母语。