Persistente Blob-Streams mit NHibernate

8

Wenn ich eine Klasse wie folgt deklariert habe:

%Vor%

Wie kann ich NHibernate-Mappings verwenden, um die MyData-Eigenschaft in und aus der Datenbank zu erhalten?

    
plaureano 31.01.2009, 11:59
quelle

1 Antwort

13

Sie können einen Stream mit einem benutzerdefinierten Typ verwenden und ihn entsprechend Ihren Speicheranforderungen zuordnen. Aber es gibt einige Probleme mit der Verwendung des Stream-Objekts, wie ich in meinem Blogserie über Lazy Streaming von BLOBs und CLOBs mit NHibernate .

Was Sie wirklich brauchen, ist ein Blob-Objekt, das wiederum einen Stream erzeugen kann, von dem Daten gelesen werden. Da Stream Informationen über die Position enthält, aus der Sie lesen, und erwartet, dass sie geschlossen und entsorgt wird, kann dies zu Problemen führen, wenn Sie direkt in einem Domänenmodell verwendet werden.

Ich würde vorschlagen, dass Sie einen Blick auf die Blog-Serie sowie den Quellcode des NHibernate.Lob-Projekts . Es enthält verschiedene Zuordnungsoptionen für genau solch ein Problem. Ein wenig bisher kaum dokumentiert, aber mehr kommt.

    
Sebastian Markbåge 12.03.2009, 01:58
quelle