Пример #1
0
 public virtual void Save(IReadOnlyCollection <T> objs)
 {
     if (objs.Count == 0)
     {
         return;
     }
     foreach (T obj in objs)
     {
         BeginSaveCallback?.Invoke(obj);
     }
     lock (globalDBLock)
     {
         using (var session = DatabaseFactory.SessionFactory.OpenSession())
         {
             using (var transaction = session.BeginTransaction())
             {
                 foreach (T obj in objs)
                 {
                     session.SaveOrUpdate(obj);
                     SaveWithOpenTransactionCallback?.Invoke(session.Wrap(), obj);
                     lock (Cache)
                     {
                         Cache.Update(obj);
                     }
                 }
                 transaction.Commit();
             }
         }
     }
     foreach (T obj in objs)
     {
         EndSaveCallback?.Invoke(obj);
     }
 }
Пример #2
0
 public virtual void Save(List <T> objs)
 {
     if (objs.Count == 0)
     {
         return;
     }
     foreach (T obj in objs)
     {
         BeginSaveCallback?.Invoke(obj);
     }
     using (var session = JMMService.SessionFactory.OpenSession())
     {
         using (var transaction = session.BeginTransaction())
         {
             foreach (T obj in objs)
             {
                 session.SaveOrUpdate(obj);
                 SaveWithOpenTransactionCallback?.Invoke(session, obj);
             }
             transaction.Commit();
         }
     }
     foreach (T obj in objs)
     {
         EndSaveCallback?.Invoke(obj);
     }
 }
Пример #3
0
 //This function do not run the BeginDeleteCallback and the EndDeleteCallback
 public virtual void SaveWithOpenTransaction(ISession session, List <T> objs)
 {
     if (objs.Count == 0)
     {
         return;
     }
     foreach (T obj in objs)
     {
         session.SaveOrUpdate(obj);
         SaveWithOpenTransactionCallback?.Invoke(session.Wrap(), obj);
     }
 }
Пример #4
0
        //This function do not run the BeginDeleteCallback and the EndDeleteCallback
        public virtual void SaveWithOpenTransaction(ISessionWrapper session, T obj)
        {
            if (Equals(SelectKey(obj), default(S)))
            {
                session.Insert(obj);
            }
            else
            {
                session.Update(obj);
            }

            SaveWithOpenTransactionCallback?.Invoke(session, obj);
            Cache.Update(obj);
        }
Пример #5
0
 public virtual void Save(T obj)
 {
     BeginSaveCallback?.Invoke(obj);
     using (var session = DatabaseFactory.SessionFactory.OpenSession())
     {
         using (var transaction = session.BeginTransaction())
         {
             session.SaveOrUpdate(obj);
             SaveWithOpenTransactionCallback?.Invoke(session.Wrap(), obj);
             transaction.Commit();
         }
     }
     EndSaveCallback?.Invoke(obj);
 }
Пример #6
0
 //This function do not run the BeginDeleteCallback and the EndDeleteCallback
 public virtual void SaveWithOpenTransaction(ISession session, T obj)
 {
     lock (globalDBLock)
     {
         lock (obj)
         {
             session.SaveOrUpdate(obj);
             SaveWithOpenTransactionCallback?.Invoke(session.Wrap(), obj);
             lock (Cache)
             {
                 Cache.Update(obj);
             }
         }
     }
 }
Пример #7
0
 public virtual void Save(T obj)
 {
     BeginSaveCallback?.Invoke(obj);
     using (var session = JMMService.SessionFactory.OpenSession())
     {
         using (var transaction = session.BeginTransaction())
         {
             SaveWithOpenTransactionCallback?.Invoke(session, obj);
             session.SaveOrUpdate(obj);
             transaction.Commit();
         }
     }
     Cache.Update(obj);
     EndSaveCallback?.Invoke(obj);
 }
Пример #8
0
 //This function do not run the BeginDeleteCallback and the EndDeleteCallback
 public void SaveWithOpenTransaction(ISession session, List <T> objs)
 {
     if (objs.Count == 0)
     {
         return;
     }
     lock (globalDBLock)
     {
         foreach (T obj in objs)
         {
             lock (obj)
             {
                 session.SaveOrUpdate(obj);
                 SaveWithOpenTransactionCallback?.Invoke(session.Wrap(), obj);
                 Cache.Update(obj);
             }
         }
     }
 }
Пример #9
0
 public virtual void Save(T obj)
 {
     BeginSaveCallback?.Invoke(obj);
     lock (globalDBLock)
     {
         lock (obj)
         {
             using (var session = DatabaseFactory.SessionFactory.OpenSession())
             {
                 using (var transaction = session.BeginTransaction())
                 {
                     SaveWithOpenTransactionCallback?.Invoke(session.Wrap(), obj);
                     session.SaveOrUpdate(obj);
                     transaction.Commit();
                 }
             }
             lock (Cache)
             {
                 Cache.Update(obj);
             }
         }
     }
     EndSaveCallback?.Invoke(obj);
 }
Пример #10
0
 //This function do not run the BeginDeleteCallback and the EndDeleteCallback
 public virtual void SaveWithOpenTransaction(ISession session, T obj)
 {
     session.SaveOrUpdate(obj);
     SaveWithOpenTransactionCallback?.Invoke(session.Wrap(), obj);
     Cache.Update(obj);
 }