Breeze.ContextProvider.SaveWorkState.ToSaveResult C# (CSharp) Метод

ToSaveResult() публичный Метод

public ToSaveResult ( ) : SaveResult
Результат SaveResult
    public SaveResult ToSaveResult() {
      WasUsed = true; // try to prevent reuse in subsequent SaveChanges
      if (EntityErrors != null) {
        return new SaveResult() { Errors = EntityErrors.Cast<Object>().ToList() };
      } else {
        var entities = SaveMap.SelectMany(kvp => kvp.Value.Where(ei => (ei.EntityState != EntityState.Detached))
          .Select(entityInfo => entityInfo.Entity)).ToList();
        var deletes = SaveMap.SelectMany(kvp => kvp.Value.Where(ei => (ei.EntityState == EntityState.Deleted || ei.EntityState == EntityState.Detached))
          .Select(entityInfo => new EntityKey(entityInfo.Entity, ContextProvider.GetKeyValues(entityInfo)))).ToList();
        return new SaveResult() { Entities = entities, KeyMappings = KeyMappings, DeletedKeys = deletes };
      }
    }
  }

Usage Example

Пример #1
0
        public SaveResult SaveChanges(JObject saveBundle, TransactionSettings transactionSettings = null)
        {
            if (SaveWorkState == null || SaveWorkState.WasUsed)
            {
                InitializeSaveState(saveBundle);
            }

            transactionSettings = transactionSettings ?? BreezeConfig.Instance.GetTransactionSettings();
            try
            {
                if (transactionSettings.TransactionType == TransactionType.TransactionScope)
                {
                    var txOptions = transactionSettings.ToTransactionOptions();
                    using (var txScope = new TransactionScope(TransactionScopeOption.Required, txOptions))
                    {
                        OpenAndSave(SaveWorkState);
                        txScope.Complete();
                    }
                }
                else if (transactionSettings.TransactionType == TransactionType.DbTransaction)
                {
                    this.OpenDbConnection();
                    using (IDbTransaction tran = BeginTransaction(transactionSettings.IsolationLevelAs))
                    {
                        try
                        {
                            OpenAndSave(SaveWorkState);
                            tran.Commit();
                        }
                        catch
                        {
                            tran.Rollback();
                            throw;
                        }
                    }
                }
                else
                {
                    OpenAndSave(SaveWorkState);
                }
            }
            catch (EntityErrorsException e)
            {
                SaveWorkState.EntityErrors = e.EntityErrors;
                throw;
            }
            catch (Exception e2)
            {
                if (!HandleSaveException(e2, SaveWorkState))
                {
                    throw;
                }
            }
            finally
            {
                CloseDbConnection();
            }

            return(SaveWorkState.ToSaveResult());
        }
All Usage Examples Of Breeze.ContextProvider.SaveWorkState::ToSaveResult