0

我有桌面应用程序和 Web 应用程序引用的通用 dll。其中一种方法创建 3 个对象并将它们插入到事务中的 DB 中。

但是,当我从 Web 应用程序和桌面应用程序同时调用此方法时,对象不会 3by3 插入......它们的顺序是混合的(1 个来自桌面应用程序,然后是 1 个来自 Web 应用程序等)。

我的代码还可以吗?有什么关系映射,或者 nhibernate cfg 吗?非常感谢您提前。

               Notifications not = new Notifications();
               not.Notes = applicationName;
               not.GeneratedTime = DateTime.Now;
               using (var session = SessionManager.OpenSession())
               using (var transaction = session.BeginTransaction())
               {
                   // do what you need to do with the session
                   session.Save(not);

               not = new Notifications();
               not.Notes = applicationName;
               not.GeneratedTime = DateTime.Now;

                   session.Save(not);

               not = new Notifications();
               not.Notes = applicationName;
               not.GeneratedTime = DateTime.Now;

                   // do what you need to do with the session
                   session.Save(not);
                   transaction.Commit();
               }
4

1 回答 1

1

您错误地假设在一个事务中执行插入将阻止在其他并发事务中发生插入。

这是不正确的(除非您使用某些特定的事务隔离级别,专门锁定整个表等......但我们只是说这不是真的)

于 2013-03-29T18:10:32.150 回答