使用Linq,我需要从表中删除所有行,然后输入大约1000个新行.我怎样才能把这整件事变成一笔交易

本文关键字:一笔 交易 1000个 删除 Linq 使用 输入 然后 新行 | 更新日期: 2023-09-27 18:15:23

我需要清空一个表,然后输入大约1000行。但是,我需要整个事情都是一个事务,因此,如果任何插入失败,我不会被空(或部分空)表所困扰。

所以我尝试了下面的代码,其中插入(. add)会故意失败。但是,在运行它时,对删除存储过程(prDeleteFromUserTable)的调用不会随着事务回滚。我留下一个空表,没有插入。
using (var context = new Entities(_strConnection))
{
    using (var transaction = new TransactionScope())
    {
        //delete all rows in the table
        context.prDeleteFromUserTable();
        //add a row, which I made intentionally make fail to test the transaction
        context.UserTable.Add(row);
        context.SaveChanges();
        //end the transaction
        transaction.Complete();
    }
}  

我如何使用lintosql来完成这个?

使用Linq,我需要从表中删除所有行,然后输入大约1000个新行.我怎样才能把这整件事变成一笔交易

LINQ用于查询(语言集成查询),而不是为批量删除和插入而设计的。一个好的解决方案是使用SQL删除所有行DELETE FROM myTable和SqlBulkCopy的1000个插入。