代码之家  ›  专栏  ›  技术社区  ›  Kapil

在数据库中使用TransactionScope是否会导致删除语句?

  •  1
  • Kapil  · 技术社区  · 17 年前

    我正在使用linq to sql和transactionscopre在sql中插入数据。

    _context.tblDataContainer.InsertOnSubmit(migrationData);
    
    using (TransactionScope ts = new TransactionScope())
    {
        _context.SubmitChanges();
        ts.Complete();
    }
    

    执行此操作时,linq是否在sql上执行任何delete语句。我已经使用上下文日志进行了检查,并且没有向数据库发出delete语句,但是我的db管理员说我正在执行这个事务中的一些delete语句。对此有何看法?

    1 回复  |  直到 17 年前
        1
  •  1
  •   keithwarren7    17 年前

    我们真的需要更多地了解您的模式。记住,L2是声明式的——你要声明的是你想要做的,而不是怎么做。L2S引擎完全有可能查看您的数据库,发现某种类型的约束或其他情况,并确定安全插入该数据的最佳方法是首先删除记录。虽然这是一个延伸,但它可能会发生。

    不过,还有其他的可能性,比如触发器。是否检查表正在执行插入操作,并查看是否有任何触发器可能正在删除其他位置的数据?