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

用NHibernate延迟加载一部分记录

  •  1
  • hometoast  · 技术社区  · 15 年前

    我不知道该怎么解释。所以这里…

    我正在尝试适应这种方法来延迟加载blobs,如前所述。 here 但我只能坐一张桌子。

    我有一个模式(固定的,在遗留系统中),它看起来像这样:

    MyTable
       ID int
       Name char(50)
       image byte
    

    这是在Informix上进行的,byte列是一个简单的大型对象。现在通常我会用 "SELECT ID, Name, (image is not null) as imageexists..." 稍后处理blob加载。

    我可以构建我的对象模型,让它有两个不同的类(从而有两个不同的映射定义)来处理关系,但是我如何才能“愚弄”nhibernate使用同一个表来显示这种一对一关系呢?

    1 回复  |  直到 8 年前
        1
  •  2
  •   Stuart Childs    15 年前

    简短的回答:你不能。

    您要么需要映射它两次,要么(我的首选项)创建一个具有所需字段的DTO。在HQL中,您可以执行以下操作:

    select new MyTableDTO(t.ID, t.name) from MyTable t