如果我有一个类声明为:
public class MyPersistentClass
{
public int ID { get; set; }
public Stream MyData {get;set; }
}
如何使用 NHibernate 的映射将 MyData 属性持久化到数据库和从数据库中取出?
如果我有一个类声明为:
public class MyPersistentClass
{
public int ID { get; set; }
public Stream MyData {get;set; }
}
如何使用 NHibernate 的映射将 MyData 属性持久化到数据库和从数据库中取出?
您可以使用自定义类型的 Stream 并根据您的存储需求对其进行映射。但是,正如我在关于使用 NHibernate 对 BLOB 和 CLOB 进行延迟流式传输的博客系列中提到的那样,使用 Stream 对象存在一些问题。
你真正需要的是一个 Blob 对象,它反过来可以创建一个 Stream 来读取数据。由于 Stream 包含有关您正在读取的位置的信息,并希望将其关闭和处置,因此当直接在域模型中使用时可能会产生一些问题。
我建议您查看博客系列以及NHibernate.Lob 项目的源代码。它包括针对此类问题的各种映射选项。到目前为止,几乎没有记录,但还有更多。