Skip to main content

Attachments: Copying, Moving & Renaming

Attachments can be copied, moved or renamed using appropriate built-in session methods. All of those actions are executed when SaveChanges is called and are taking place on the server-side, removing the need to transfer whole attachment binary data over the network in order to perform the action.

Copying

Attachment can be copied using one of the session.Advanced.Attachments.Copy methods:

Syntax

void Copy(
object sourceEntity,
string sourceName,
object destinationEntity,
string destinationName);

void Copy(
string sourceDocumentId,
string sourceName,
string destinationDocumentId,
string destinationName);

Example

var employee1 = session.Load<Employee>("employees/1-A");
var employee2 = session.Load<Employee>("employees/2-A");

session.Advanced.Attachments.Copy(employee1, "photo.jpg", employee2, "photo-copy.jpg");

session.SaveChanges();

Moving

Attachment can be moved using one of the session.Advanced.Attachments.Move methods:

Syntax

void Move(object sourceEntity, string sourceName, object destinationEntity, string destinationName);

void Move(string sourceDocumentId, string sourceName, string destinationDocumentId, string destinationName);

Example

var employee1 = session.Load<Employee>("employees/1-A");
var employee2 = session.Load<Employee>("employees/2-A");

session.Advanced.Attachments.Move(employee1, "photo.jpg", employee2, "photo.jpg");

session.SaveChanges();

Renaming

Attachment can be renamed using one of the session.Advanced.Attachments.Rename methods:

Syntax

void Rename(object entity, string name, string newName);

void Rename(string documentId, string name, string newName);

Example

var employee = session.Load<Employee>("employees/1-A");

session.Advanced.Attachments.Rename(employee, "photo.jpg", "photo-new.jpg");

session.SaveChanges();