/// <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); } } }
public string GetSaveQuery() { return(string.Format("{0};", QueryProvider.GetSaveQuery(this))); }