質問

次のように宣言されたクラスがあるとします。

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

NHibernate のマッピングを使用して、データベースとの間で MyData プロパティを永続化するにはどうすればよいですか?

役に立ちましたか?

解決

カスタム タイプを使用してストリームを使用し、ストレージのニーズに応じてマップすることができます。しかし、私の記事で述べたように、Stream オブジェクトの使用にはいくつかの問題があります。 NHibernate を使用した BLOB および CLOB の遅延ストリーミングに関するブログ シリーズ.

本当に必要なのは、データを読み取るストリームを作成できる Blob オブジェクトです。Stream には、読み取り元の位置に関する情報が含まれており、閉じられて破棄されることが予想されるため、ドメイン モデルで直接使用すると、いくつかの問題が発生する可能性があります。

見てみることをお勧めします ブログシリーズ のソースコードと同様に、 NHibernate.Lob プロジェクト. 。まさにそのような問題に対処するためのさまざまなマッピング オプションが含まれています。これまでのところ文書化されたものはほとんどありませんが、今後さらに文書化される予定です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top