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