使用生成的主键ID插入多行时如何使用事务范围?

时间:2016-06-14 07:24:35

标签: c# transactionscope

我想在orderdetail表中插入多行。 我使用System.Transactions.TransactionScope确保所有行都能插入。

但是,当我尝试运行它时,我在orderdetail上遇到了主键违规。 我使用自定义代码生成主键。 此外,我还实现了read-uncommitted选项来读取临时数据。

TransactionOptions To = new TransactionOptions(){
            IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted
        };
using (TransactionScope s = new TransactionScope(TransactionScopeOption.RequiresNew,To))
            foreach (string[] item in allItem)
            {
                //get the item to the entity   
                E_item = new E_item(C_Orderd.getNextOrddId(DateTime.Now.Date.ToString("yyyyMMdd")),item[0],item[2],item[3]);
                //insertItem
                C_Orderd.insertItem(E_item);
            }
            s.Complete();
        }
 }

(我已经启用了msdtc,但它只是冻结了什么都没做)

如何使用事务范围或其他方法解决此问题 非常感谢。

0 个答案:

没有答案