Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Нужна срочная помощь со сложным запросом / 5 сообщений из 5, страница 1 из 1
19.10.2009, 13:54
    #36259473
XopcT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна срочная помощь со сложным запросом
Приветствую!
С БД работаю посредством NHibernate. В идеале хотелось бы решить вопрос через критерии.
Есть сообщения (таблица Messages), есть правки к ним (таблица Corrections). Сообщение - это просто айдишник в таблице, на него ссылается множество правок (текст; кто сделал правку; дата изменения; различные реквизиты - в том числе много-ко-многим).
Нужно получить ПОСЛЕДНЮЮ правку для каждого сообщения в разрезе даты. Подскажите, как реализовать? Заранее благодарю.
...
Рейтинг: 0 / 0
19.10.2009, 15:53
    #36259890
ZeusTheTrueGod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна срочная помощь со сложным запросом
Правильно это реализовать через лимит и условие
...
Рейтинг: 0 / 0
19.10.2009, 16:09
    #36259946
XopcT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна срочная помощь со сложным запросом
ZeusTheTrueGod
Это я уже понял. Теперь вопрос стоит в том, куда именно ставить лимит и условие.
Я попытался сделать критерий для Correction, но ограничить по сообщениям мне не удалось.
Теперь пробую выбирать все сообщения, ограничивая коллекцию правок для них. Получается вот так:
Код: plaintext
1.
2.
3.
4.
IList<Message> msgs = base.Session.CreateCriteria(typeof(Message))
    .CreateAlias("Corrections", "correction")
    .Add(Expression.Le("correction.Time", time))
    .SetResultTransformer(new DistinctRootEntityResultTransformer())
    .List<Advertisement>();
Но если потом перебрать результат, то в нём почему-то оказываются правки с бОльшим временем.
Интересует, с нужной ли я стороны взялся? В чём может быть причина проблем с условием?
...
Рейтинг: 0 / 0
20.10.2009, 16:31
    #36262422
ZeusTheTrueGod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна срочная помощь со сложным запросом
добавить Order и Top 1 - получится нужная запись. ну и так в цикле для каждого сообщения
...
Рейтинг: 0 / 0
20.10.2009, 16:34
    #36262430
XopcT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна срочная помощь со сложным запросом
ZeusTheTrueGod
Ну, перебирать в цикле мне не очень хотелось бы. Лучше - всё и сразу.
В целом же, решил вопрос через table-valued functions, как присоветовали в этой теме.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Нужна срочная помощь со сложным запросом / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]