Я пытаюсь использовать запрос поверх, чтобы получить коллекцию сущностей на основе соединения / подзапроса, как показано в следующем примере:
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();
Другими словами, извлекаются все действия, которые соответствуют таблице ресурсов.идентификатор пользователя и ресурса.
Я бы сделал это в raw sql, либо присоединившись к Resource, либо подзапросу:
where a.ResourceId in (select resourceKey from resource where resource.memberkey = a.MemberId)
Хотя не уверен, как действовать в nhibernate.Любые предложения?
(Мы не хотим использовать сопоставление, так как хотим сохранить сущность Activity очень простой по соображениям производительности)
Заранее спасибо