1
我试图使用查询到检索基于加入/子查询按照下面的例子实体的集合:NHibernate的QueryOver子选择或加入
var types = new List<ActivityType>{ActivityType.CommentMedia, ActivityType.KeepMedia};
return _sessionFactory.GetCurrentSession()
.QueryOver<Activity>()
.Where(a.Type.IsIn(types))
.WithSubquery.WhereExists(QueryOver.Of<Resource>()
.Where(k => k.MemberKey == userId)
.Where(k => k.ResourceKey == activity.ResourceId)
)
.Take(take)
.List();
换句话说检索它们中的所有活动资源表匹配用户和资源ID。
我会做这样的原始SQL或者通过加入到资源,或子查询:
where a.ResourceId in (select resourceKey from resource where resource.memberkey = a.MemberId)
不知道如何在NHibernate的进行,虽然。有什么建议么?
(我们不希望使用的映射,因为我们要保持活动的实体由于性能原因很简单)
在此先感谢
是使用QueryOver为此它需要,或者HQL也是一个选项? –
查询结束会更好。在我看来,它应该是直截了当的。干杯 –