nhibernate - 使用 NHibernate 持久化 Blob 流

标签 nhibernate stream binary-data blobs

如果我有一个类声明为:

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/

相关文章:

java - 通过代理java下载文件

unit-testing - NHibernate/Npgsql 在调试 UnitTest 时在 CreateSchema 期间抛出异常

events - Esper 对战 Coral8。 . .事件流处理

javascript - 如何使用 “JavaScript enabled” 获取 HTML?

python - 在 Python 中读取结构二进制数据?

java - 转换字节值,以便删除/恢复其 MSB

python - 如何从 Tornado 提供二进制数据?

c# - Fluent-NHibernate 是否支持映射到过程?

c# - 如何在NHibernate中同时提交两个数据库?

c# - 将零宽度空间插入数据库的 Unicode 问题