예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="record"></param>
        public void SaveChanges(IFluentRecord record)
        {
            var mutations = record.MutationTracker.GetMutations();
            var op        = new BatchMutate(mutations);

            ExecuteOperation(op);
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="record"></param>
        /// <param name="atomic">in the database sense that if any part of the batch succeeds, all of it will. No other guarantees are implied; in particular, there is no isolation; other clients will be able to read the first updated rows from the batch, while others are in progress</param>
        /// <seealso href="http://www.datastax.com/dev/blog/atomic-batches-in-cassandra-1-2"/>
        public void SaveChanges(IFluentRecord record, bool atomic = true)
        {
            var tracker   = record.MutationTracker;
            var mutations = tracker.GetMutations();

            var op = new BatchMutate(mutations, atomic);

            ExecuteOperation(op);

            tracker.Clear();
        }
예제 #3
0
        /// <summary>
        /// Saves the pending changes.
        /// </summary>
        public void SaveChanges()
        {
            lock (_trackers)
            {
                var mutations = new List <FluentMutation>();

                foreach (var tracker in _trackers)
                {
                    mutations.AddRange(tracker.GetMutations());
                }

                var op = new BatchMutate(mutations);
                ExecuteOperation(op);

                foreach (var tracker in _trackers)
                {
                    tracker.Clear();
                }

                _trackers.Clear();
            }
        }