如果我有一个类声明为:
public class MyPersistentClass
{
public int ID { get; set; }
public Stream MyData {get;set; }
}
如何使用 NHibernate 的映射将 MyData 属性保留到数据库或从数据库保留 MyData 属性?
您可以使用自定义类型的 Stream,并根据您的存储需求映射它。但是正如我在我的文章中提到的,使用 Stream 对象存在一些问题关于使用 NHibernate 延迟传输 BLOB 和 CLOB 的博客系列 http://blog.calyptus.eu/seb/2009/03/large-object-storage-for-nhibernate-and-ddd-part-1-blobs-clobs-and-xlobs/.
您真正需要的是一个 Blob 对象,该对象又可以创建一个 Stream 来从中读取数据。由于 Stream 包含有关您正在读取的位置的信息,并且希望关闭和处置它,因此在域模型中直接使用时可能会产生一些问题。
我建议你看一下博客系列 http://blog.calyptus.eu/seb/2009/03/large-object-storage-for-nhibernate-and-ddd-part-1-blobs-clobs-and-xlobs/以及源代码NHibernate.Lob 项目 https://github.com/calyptus/calyptus.lob。它包含针对此类问题的各种映射选项。到目前为止,几乎没有记录,但更多的信息即将到来。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)