Zu Datentabellen können Dateien hinzugefügt werden. Diese werden technisch aufgeteilt in einen Speicher und einem beschreibenden Objekt. Das beschreibende Objekt wird zum Datensatz abgelegt und kann pro Datei mehrfach existieren. Die Speicherung der Datei erfolgt aber nur einmalig, so daß kein zusätzlicher Speicher benötigt wird, wenn die identische Datei mehrfach zu verschiedenen Datensätzen abgelegt wird. Dieser Mechanismus wird von BA vollkommen Transparent durchgeführt, so dass dafür keine besonderen Implementierungen notwendig sind.

Für den Umgang mit Dateien gibt es Hilfsmethoden in Api.Attachments.

Dateien auf einem Datensatz

Um auf einen Datensatz Methoden für den Umgang mit Dateien zur Verfügung zu haben, muss die Erweiterung über ein using eingebunden werden.

using BA.Core.Extensions.BA.Core.DB;

Hinzufügen

byte[] data = new byte[];
OrmAttachment attachment = Api.Attachments.CreateAttachment("Dateinname.txt", data, null, session: orm.Session);
orm.AddAttachment(attachment, false);
orm.Save();

Abfragen

Einzelne Datei

OrmAttachment attachment = orm.GetAttachmentById(attachmentGuid);

Dateiliste

IEnumerable<OrmAttachment> attachments = orm.GetAttachments();

Eingebette Bilder in HTML Feldern werden ebenfalls als Dateien abgelegt und werden daher ebenfalls nur einmalig in den Speicher abgelegt. Um diese zu Laden muss man den Parameter inline setzen.

IEnumerable<OrmAttachment> attachments = orm.GetAttachments(inline: AttachmentInlineType.Inline);

Entfernen

orm.RemoveAttachment(attachment);