Raven.Database.DocumentDatabase.Delete C# (CSharp) Method

Delete() public method

public Delete ( string key, System.Guid etag, Raven.Abstractions.Data.TransactionInformation transactionInformation ) : void
key string
etag System.Guid
transactionInformation Raven.Abstractions.Data.TransactionInformation
return void
		public void Delete(string key, Guid? etag, TransactionInformation transactionInformation)
		{
			log.Debug("Delete a document with key: {0} and etag {1}", key, etag);
			TransactionalStorage.Batch(actions =>
			{
				if (transactionInformation == null)
				{
					AssertDeleteOperationNotVetoed(key, transactionInformation);

					DeleteTriggers.Apply(trigger => trigger.OnDelete(key, transactionInformation));

					RavenJObject metadata;
					if (actions.Documents.DeleteDocument(key, etag, out metadata))
					{
						AddIndexingTask(actions, metadata, () => new RemoveFromIndexTask { Keys = { key } });
						DeleteTriggers.Apply(trigger => trigger.AfterDelete(key, transactionInformation));
					}
				}
				else
				{
					actions.Transactions.DeleteDocumentInTransaction(transactionInformation, key, etag);
				}
				workContext.ShouldNotifyAboutWork();
			});
			TransactionalStorage
				.ExecuteImmediatelyOrRegisterForSyncronization(() => DeleteTriggers.Apply(trigger => trigger.AfterCommit(key)));
		}

Usage Example

 public JArray DeleteByIndex(string indexName, IndexQuery queryToDelete, bool allowStale)
 {
     return(PerformBulkOperation(indexName, queryToDelete, allowStale, (docId, tx) =>
     {
         database.Delete(docId, null, tx);
         return new { Document = docId, Deleted = true };
     }));
 }
All Usage Examples Of Raven.Database.DocumentDatabase::Delete