NHibernate:延迟加载属性?

时间:2010-01-26 17:15:41

标签: sql nhibernate properties lazy-loading

NHibernate问题:

假设我有一个SQL表Person,它有一个Picture列(OLE Object)。我有一个Person类,它有:byte [] Picture属性。

可以像这样映射吗?

<property name  = "Picture" column = "Picture"  type = "System.Byte[]"  lazy="true"  />

“lazy”关键字对属性有影响,还是仅在使用集合/包等时才能使用?

2 个答案:

答案 0 :(得分:3)

我还没有找到任何方法让它发挥作用,但以下两种方法可以帮助您解决您所暗示的问题:

  • 您可以为同一个表映射两个类,一个包括字节数组,另一个不包括。

  • 您可以将多对一属性映射包含到同一个表中,其中子类包含字节数组,然后使用Person.PersonPicture.Picture而不是{{1}访问二进制文件}};中间类现在可以延迟加载。

两者都不理想,但确实有效。简短回答 - 集合和多对一属性可以延迟加载,而不是直接属性。

答案 1 :(得分:3)