【问题标题】:NHibernate Entity access through projectionNHibernate Entity 通过投影访问
【发布时间】:2011-04-24 16:50:39
【问题描述】:

我有这个映射文件:

'class name="WebTools.Data.Common.IHObjekt, WebTools.Data" table="IHObjekt"'  
  ....
'property name="TYPBEZEICH" type="string"' 
...  
'many-to-one name="standort" column="STANDORT_ID" fetch="join"'  

我想使用“Projections.ProjectionList()”来减少查询返回的列数。

我这样做:

'ICriteria criteria = Session.CreateCriteria(typeof(Data.Common.IHObjekt));'  
'ProjectionList projectionList = Projections.ProjectionList();'  
..   
'projectionList.Add(Projections.Property("standort.CODE"));'  

并收到此错误:

NHibernate.QueryException:无法解析属性:standort.CODE of:WebTools.Data.Common.IHObjekt

我正在尝试访问子实体,但似乎我只能访问父类中的值。喜欢:

'projectionList.Add(Projections.Property("TYPBEZEICH"));' 

谁能提供一些代码让我使用投影来访问子类中的实体?

【问题讨论】:

    标签: nhibernate entity projection


    【解决方案1】:

    您需要创建别名才能引用子实体的属性。

    ICriteria criteria = Session.CreateCriteria(typeof(Data.Common.IHObjekt));
    
    criteria.CreateAlias("standort", "s", JoinType.InnerJoin);
    
    ProjectionList projectionList = Projections.ProjectionList();
    projectionList.Add(Projections.Property("s.CODE"));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-02
      相关资源
      最近更新 更多