代码之家  ›  专栏  ›  技术社区  ›  Falcon

NHibernate:延迟加载特性

  •  1
  • Falcon  · 技术社区  · 14 年前

    所以,根据Ayende的说法,懒惰的装载特性已经存在于NHibernate主干中了。

    我的问题是:我不能使用主干,因为我有FluentHibernate和Linq用于NHibernate,所以我依赖于它们链接的版本(versio 2.x)。我不能也不想用最新版本的NHibernate自己构建所有的程序集。

    那么,有没有人知道NHibernate 3.0什么时候会离开贝塔体育场,辅助设备(Linq等)会根据它进行编译?

    我很感激你的估计!

    我需要这个特性,这样我就可以在blob字段中使用它。我不想使用解决方法来破坏我的对象模型。

    2 回复  |  直到 14 年前
        1
  •  3
  •   Diego Mijelshon    14 年前

        2
  •  0
  •   Adam Boddington    14 年前

    或者,这不是一个很大的模型改变。生成一个新的类blob,它具有id、version和bytes属性,并生成一个要匹配的新表。将新类作为受保护属性添加到当前具有blob的每个类中。像后备商店一样使用它。更改映射以映射基础属性而不是公共属性。

    public class MyClass
    {
        public MyClass()
        {
            MyBlobProperty_Blob= new Blob();
        }
    
        public virtual byte[] MyBlobProperty
        {
            get { return MyBlobProperty_Blob.Bytes; }
        }
    
        protected virtual Blob MyBlobProperty_Blob { get; private set; }
    }
    

    然而,这是一个重要的模式变化。这个特定的解决方案将所有二进制数据移动到一个表中。