nhibernate stream binary-data blobs

Persisting Blob Streams con NHibernate



binary-data blobs (1)

Si tengo una clase declarada como:

public class MyPersistentClass { public int ID { get; set; } public Stream MyData {get;set; } }

¿Cómo puedo usar las asignaciones de NHibernate para conservar la propiedad MyData desde y hacia la base de datos?


Puede usar un Stream utilizando un tipo personalizado y asignarlo de acuerdo con sus necesidades de almacenamiento. Pero hay algunos problemas con el uso del objeto Stream como menciono en mi serie de blog sobre la transmisión lenta de BLOB y CLOB con NHibernate .

Lo que realmente necesitas es un objeto Blob que a su vez pueda crear un flujo para leer datos. Como Stream contiene información sobre la posición desde la que está leyendo y espera ser cerrada y eliminada, puede crear algunos problemas cuando se usa directamente en un modelo de dominio.

Sugiero que eche un vistazo a la serie de blogs , así como al código fuente del proyecto NHibernate.Lob . Incluye varias opciones de mapeo para tal problema. Un poco escasamente documentado hasta ahora, pero viene más.