我试图使用Entite Framework 6与sqlite,并在尝试使用TransactionScope时遇到数据库锁定问题.这是我的代码:
using (var txn = new TransactionScope())
{
using (var ctx = new CalibreContext())
{
var book = ctx.Books.First(x => x.Id == 2);
var author = ctx.Authors.First(x => x.Id == 3);
book.Authors.Add(author);
ctx.SaveChanges();
}
txn.Complete();
}
第一行var book = ctx.Books.First(x => x.Id == 2);执行正常.但是一旦我继续下一个,我得到一个例外,说我的数据库被锁定了.这是我的应用配置:
我需要使用TransactionScope,因为除了执行数据库操作之外,我还必须执行我计划添加到同一事务(目前不存在)的文件系统操作.