我有这个映射文件:
'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:WebTools.Data.Common.IHObjekt
我正在尝试访问子实体但看起来我只能访问父类中的值。像:
'projectionList.Add(Projections.Property("TYPBEZEICH"));'
任何人都可以提供一些代码,让我使用投影来访问子类中的实体吗?
答案 0 :(得分: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"));