如果我有一个类声明为:
public class MyPersistentClass
{
public int ID { get; set; }
public Stream MyData {get;set; }
}
如何使用 NHibernate 的映射将 MyData 属性持久化到数据库中?
最佳答案
您可以使用自定义类型的 Stream 并根据您的存储需求对其进行映射。但是,正如我在 blog series about lazy streaming of BLOBs and CLOBs with NHibernate 中提到的,使用 Stream 对象存在一些问题。 .
您真正需要的是一个 Blob 对象,它可以创建一个 Stream 来从中读取数据。由于 Stream 包含有关您正在读取的位置的信息,并希望关闭和处理它,因此当直接在域模型中使用时,可能会产生一些问题。
我建议你看看the blog series以及NHibernate.Lob project的源代码.它包括针对此类问题的各种映射选项。到目前为止几乎没有记录,但更多的即将到来。
关于nhibernate - 使用 NHibernate 持久化 Blob 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/498712/