Мне трудно понять, как сделать следующее.
Даны следующие классы:
public class Post
{
...
public IList<Comment> Comments
...
}
public class Comment
{
public DateTime CommentDate
... Some other properties but no reference to Post...
}
Как мне написать запрос, чтобы получить только первые 10 комментариев для данного поста, упорядоченные по убыванию даты?
Поскольку нет ссылки от Comment
до Post
, я не могу запросить на Comment
, мне нужно запросить на Post
, но все мои запросы, похоже, возвращают Post
, и мои попытки при проекции не удалось.
Я не могу добавить свойство, ссылающееся на Post
из Comment
(кстати, это не моя модель домена), поэтому я застрял.
Надеюсь, я не упускаю ничего очевидного.
Edit:
Это дало бы мне то, что я хочу, если бы была ссылка из Комментария к Посту
var query = (from comment in Session.Query<Comment>() orderby comment.CommentDate
where comment.Post == some Post select comment).Take(10);
но нет, поэтому я ищу эквивалентный запрос на Post, который возвращает список из 10 комментариев.
Если запрос возможен через Linq, это то, что я предпочел бы, но был бы достаточно счастлив, используя QueryOver.
Я мог бы просто переделать мою модель предметной области, чтобы была эта ссылка.