Здравствуйте, Sinclair, Вы писали:
S>Очень вряд ли. Там же фиксированный список будет. Сколько у тебя может быть потомков у класса в системе? 1000? Ерунда — полетит со страшной скоростью.
S>Ага. Это, конечно, правильно. Но мы даем шикарную возможность вынудить сервер заниматься бессмысленной работой. Все должно быть оправдано. Если ты не можешь придумать реальный пример, который бы требовал именно as, то незачем его и делать.
Не соглашусь. Потомков у класса может быть много. И учитывая то что это ORM с реляционным маппированием, то в некоторых случая может получиться, что на каждый тип сгенерится свой запрос.
Я вообще пока пошел по другому пути. Ввел понятие typeing. Например такой запрос:
select FucObjects
возвращает все объекты наследованные от FucObject — то есть, практически все объекты находящиеся в БД. А вот так не надо строить много as.
select FucObjects typeing typeas(FucObjects, FucDocument, FucMessage)
вернуть array<FucObjects> у которых реальный тип объектов FucDocument и FucMessage.
И еще одну феньку сделал. Можно в одном запросе возвращаеть сразу несколько наборов.
select a, b where a=10 and b=20
будет определено что это два графа выполнения, и будет возвращено два результирующих набора.
С уважением, Gleb.
... << RSDN@Home 1.1.4 beta 4 rev. 358>>