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

如何只投影两列并列出它们?(NHiBiNATE)

  •  0
  • Newbie  · 技术社区  · 16 年前

    根据下面的表格结构,您如何仅使用nhibernate来投影x和y?如何列出结果,结果列表的类型是什么?

    //Table structure, mapped in the traditional way
    FunnyTable { 
                 x [int] NOT NULL, 
                 y [int] NULL, 
                 z [int] NOT NULL
               }
    
    //assume criteria is set somewhere else
    ProjectionList list = Projections.ProjectionList()
                                     .Add(Projections.Property("x"))
                                     .Add(Projections.Property("y"));
    return criteria.SetProjection(list).List<???>??
    
    1 回复  |  直到 16 年前
        1
  •  4
  •   ChssPly76    16 年前

    它将返回一个元素为 object[] ;数组的每个元素都是投影属性的值。

    您可以将结果映射到类,而不是使用结果转换器:

    criteria.SetResultTransformer(Transformers.AliasToBean(typeof (MyResult)));
    

    上面假设您有一个myresult类,其属性名与您在projection中指定的属性名(或别名)匹配。