NHibernate问题:
假设我有一个SQL表Person,它有一个Picture列(OLE Object)。我有一个Person类,它有:byte [] Picture属性。
可以像这样映射吗?
<property name = "Picture" column = "Picture" type = "System.Byte[]" lazy="true" />
“lazy”关键字对属性有影响,还是仅在使用集合/包等时才能使用?
答案 0 :(得分:3)
我还没有找到任何方法让它发挥作用,但以下两种方法可以帮助您解决您所暗示的问题:
您可以为同一个表映射两个类,一个包括字节数组,另一个不包括。
您可以将多对一属性映射包含到同一个表中,其中子类包含字节数组,然后使用Person.PersonPicture.Picture
而不是{{1}访问二进制文件}};中间类现在可以延迟加载。
两者都不理想,但确实有效。简短回答 - 集合和多对一属性可以延迟加载,而不是直接属性。
答案 1 :(得分:3)
看来这个功能刚刚进入NHibernate主干:
http://ayende.com/Blog/archive/2010/01/27/nhibernate-new-feature-lazy-properties.aspx