如果我有一个声明为:
的类public class MyPersistentClass
{
public int ID { get; set; }
public Stream MyData {get;set; }
}
如何使用NHibernate的映射将MyData属性与数据库保持一致?
答案 0 :(得分:13)
您可以使用自定义类型的Stream并根据您的存储需求进行映射。但是正如我在blog series about lazy streaming of BLOBs and CLOBs with NHibernate中提到的那样使用Stream对象存在一些问题。
你真正需要的是一个Blob对象,它反过来可以创建一个Stream来读取数据。由于Stream包含有关您正在阅读的位置的信息,并且希望关闭并处理它,因此在直接在域模型中使用时会产生一些问题。
我建议您查看the blog series以及NHibernate.Lob project的源代码。它包括针对此类问题的各种映射选项。到目前为止,有一点记录不多,但还有更多。