我有这个A类开始一个EF事务,其中UserDb是我的DbContext
using (DbContextTransaction dbTransaction = UserDb.Database.BeginTransaction(IsolationLevel.ReadUncommitted))
然后我有几个插入,并且需要调用另一个库[基本上位于bin文件夹中的同一服务器上]来执行另一个插入。
new ExtLibrary().CreatePoweruser(3, UserDb);
正如您所看到的,我正在传递相同的连接。并且这个陈述在我认为意味着每个签名都在同一个交易中的顶部使用。
Extlibrary代码:
Data.Entities.User UserEntity = new Data.Entities.User {
UserTypeId =34, CreatedDate = DateTime.Now, CreatedBy = "mk92Test", }; UserDb.Users.Add(UserEntity); UserDb.SaveChanges();
除非ExtLibrary插入失败,否则一切正常。 Control返回到父类,它在异常时具有回滚代码,并且我得到了一个底层提供程序在回滚时失败。但即使在此异常之后,第一组插入肯定会回滚。
请告知。