我有一个具有以下映射的实体程序。
References(c => c.Region).Column("FK_RegionId").Fetch.Join();
References(c => c.RequestType).Column("FK_RequestTypeId ").Fetch.Join();
References(c => c.CategoryCode).Column("FK_CategoryCodeId").Fetch.Join();
References(c => c.HouseHoldSize).Column("FK_HouseHoldSizeId").Fetch.Join();
我正在尝试使用以下Hibernate查询
return session.QueryOver<Program>().Where(x => x.Region.ID == fields.Region && x.RequestType.ID == fields.RequestType
&& x.HouseHoldSize.Size == fields.HouseholdSize).SingleOrDefault();
但它抛出异常,说它无法解析属性HouseHoldSize.Size。任何人都可以详细说明发生了什么......?在此先感谢:)
答案 0 :(得分:1)
看起来你正试图在没有连接的情况下使用另一个实体的属性。如果您使用QueryOver
,则必须使用联接。您可以使用linq提供程序执行此操作:
return session.Query<Program>().Where(x => x.Region.ID == fields.Region && x.RequestType.ID == fields.RequestType
&& x.HouseHoldSize.Size == fields.HouseholdSize).SingleOrDefault();
如果您想使用查询,请查看:
http://nhibernate.info/blog/2009/12/17/queryover-in-nh-3-0.html