是否有一个属性表明交易中发生了更改?
我在 Razor 组件内使用事务,当用户即将退出页面时,我想询问他是否要应用或回滚他的更改,但我只想询问是否进行了更改。
类似于
DbContext.ChangeTracker.Entries
,但在 IDbContextTransaction 的上下文中。
感谢您的帮助!
我不知道这是否是一个好的做法,但回答你的问题(可能对其他人有用):
您可以使用
SaveChanges
在多次调用 context.Database.BeginTransaction()
之间创建事务,如下所示:
MyContext context = new MyContext();
using(var transaction = context.Database.BeginTransaction()) {
// Do something with context.
context.SaveChanges();
// Do something more with context.
context.SaveChanges();
transaction.Commit();
}
您可以使用
context.Database.CurrentTransaction
或 context.Database.CurrentTransaction.TransactionId
检查您的上下文是否位于事务内。您也可以一起使用 ChangeTracker
。
我正在使用 EF Core 8,您可以在文档中了解更多信息。