Exemple #1
0
        /// <summary>
        /// Сохраняет текущее состояние сущности в базе данных
        /// </summary>
        public void Save()
        {
            if (EntityState == EntityState.Default)
            {
                return;
            }

            var cmd = Astu.DbConnection.CreateCommand();

            cmd.CommandText = QueryProvider.GetSaveQuery(this);
            using (var transaction = Astu.DbConnection.BeginTransaction())
            {
                try
                {
                    // выполняем команду
                    cmd.Transaction = transaction;
                    cmd.ExecuteNonQuery();
                    transaction.Commit();

                    // Помечаем сущность как дефолтную и пересоздаем бэкап
                    EntityState = EntityState.Default;
                    _backup     = Clone() as Entity;
                }
                catch (Exception e)
                {
                    string errorMessage = string.Format("При сохранении сущности произошла ошибка.\nТекст SQL:\n{0}\n\nТекст ошибки:\n{1}",
                                                        cmd.CommandText, e.Message);
                    transaction.Rollback();
                    throw new DataException(errorMessage, e);
                }
            }
        }
Exemple #2
0
 public string GetSaveQuery()
 {
     return(string.Format("{0};", QueryProvider.GetSaveQuery(this)));
 }