2009-10-28 109 views
3

我有以下代码:NHibernate的:投影列表

criteria.SetProjection(Projections.ProjectionList() 
.Add(Projections.Property("_personId")), "_ personId") 
.Add(Projections.Property("_firstName"), "_firstName") 
.Add(Projections.Property("_lastName"), "_lastName") 
.Add(Projections.Property("_address"), "_ address ")     
.SetResultTransformer(Transformers.AliasToBean(typeof(Person))); 

我得到以下错误: NHibernate.QueryException:产权不映射到单个列:_address

_address是一个组件Nhibernate映射中的人。

是否可以在组件上使用Projections.Property?

回答

0

我不认为你可以使用_address组件,你必须使用组成_address组件的单独列名称。

所以财产以后像

.CreateAlias("Person.Address", "Address")  
.Add(Projections.Property("_streetName"), "Address.streetOne")     
+0

感谢。我添加了.Add(Projections.Property(“_ addressOne”),“_address._addressOne”)。我收到错误:无法解析属性:Person的_addressOne。 _addressOne是Address类的一个属性。 – Ros 2009-10-28 11:54:03

+0

您可能需要将CreateAlias添加到您的子句 – lomaxx 2009-10-28 13:24:16

+0

谢谢。我添加了一个CreateAlias,但它仍然不起作用。 – Ros 2009-10-28 14:07:47