예제 #1
0
        public Task MergeAsync(string tableName, IEnumerable <Value> values)
        {
            EnsureArg.IsNotNullOrEmpty(tableName, nameof(tableName));

            using (var tx = this.env.BeginTransaction())
                using (var db = tx.OpenDatabase(tableName, new DatabaseConfiguration {
                    Flags = DatabaseOpenFlags.Create
                }))
                {
                    foreach (var value in values?.Where(v => v.Key != null))
                    {
                        tx.Put(db, Encoding.UTF8.GetBytes($"{value.Key.PartitionKey}-{value.Key.RowKey}"), SerializationHelper.BsonByteSerialize(value), PutOptions.NoDuplicateData);
                    }

                    tx.Commit();
                }

            return(Task.CompletedTask);
        }