Domanda

Se ho una classe dichiarata come:

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

Come posso usare i mapping di NHibernate per rendere persistente la proprietà MyData da e verso il database?

È stato utile?

Soluzione

È possibile utilizzare uno Stream utilizzando un tipo personalizzato e mapparlo in base alle proprie esigenze di archiviazione. Ma ci sono alcuni problemi con l'utilizzo dell'oggetto Stream, come menziono nel mio serie di blog sullo streaming pigro di BLOB e CLOB con NHibernate .

Ciò di cui hai veramente bisogno è un oggetto BLOB che a sua volta può creare uno Stream da cui leggere i dati. Poiché Stream contiene informazioni sulla posizione da cui stai leggendo e prevede di essere chiuso e eliminato, può creare alcuni problemi se utilizzato direttamente in un modello di dominio.

Suggerirei di dare un'occhiata a la serie di blog nonché il codice sorgente di progetto NHibernate.Lob . Include varie opzioni di mappatura proprio per questo problema. Finora un po 'poco documentato ma ne sta arrivando di più.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top