Ich entwickle eine Dateispeicheranwendung und wir haben den FileStream-Typ in unsere Datenbank aufgenommen. Das System wird voraussichtlich große Dateien unterstützen. Ein Teil der Anwendung ermöglicht Bulk-Uploads mehrerer Dokumente. Diese Dokumente müssen dann mit anderen Entitäten innerhalb des Systems verknüpft werden.Wie verhindere ich, dass Entity Framework eine FileStream-Spalte in ein Byte-Array lädt?
Auf einer Seite werden nicht verknüpfte Dokumente angezeigt, damit ein Benutzer die Dokumente einzeln mit Entitäten verknüpfen kann. Nach einigen Lasttests des Upload-Prozesses haben wir festgestellt, dass der Arbeitsspeicherbedarf des ASP.NET-Workerprozesses beim Laden dieser Seite für nicht verknüpfte Dokumente auf einen GB-Wert erhöht wurde.
Nach einer Untersuchung scheint Entity Framework die gesamte Dokumentzeileneinheit (einschließlich FileStream, konvertiert in ein Bytearray) für Hunderte von nicht verknüpften Dokumenten zu laden. In meiner Repository-Klasse speichere ich dieses Byte-Array bei der Konvertierung in ein Model nicht, aber dann ist es zu spät. EF hat die Zeit und den Speicher ausgegeben, um das Byte-Array der Repräsentation der Repository-Klasse zuzuordnen.
Gibt es eine Möglichkeit, dass ich EF anweisen kann, dieses Byte-Array nicht zu laden, wenn ich nicht explizit danach frage?
http://stackoverflow.com/a/3293286/782754 Ist das nicht möglich, eine Eigenschaft für verzögertes Laden zu markieren, aber Sie können auch andere Konzepte –