Здравствуйте, IT, Вы писали:
_>>Ну покажи пример какого-нибудь выражения, которое на твой взгляд хорошо выглядит в linq и будет ужасно выглядеть с помощью такой библиотечки. )
IT>Так будет выглядеть любое выражение.
_>>Сравним так сказать в непосредственной близости. )
IT>Гы-гы. Ты уверен? Я сейчас вытащу на свет какого-нибдуь монстрика и для тебя вечер сразу перестанет быть томным
IT>Лядно, так и быть, что-нибудь попроще. Вот кусочек RSDN'а:
IT>IT>from m in db.Messages
IT>join f in db.AllowedForumsView(Account.ID) on m.ForumID equals f.ID
IT>where
IT> ids.Contains(m.ID) &&
IT> m.BlogMessages.All(bm => bm.BlogID != BlogService.Cache.GetBlogID(db, id))
IT>orderby
IT> m.Subject
IT>select
IT> m.ID + ", " + m.Subject;
IT>
Хм, что-то не очень понятно (видимо потому что я с Linq не работаю), в особенности чем являются различных идентификаторы не из таблиц (которые не m. и f.). Или может вместо объяснения ты просто покажешь какой sql генерируется из этого запроса? )
_>>Я в курсе. ) Более того, данный вопрос уже подробно обсуждался прямо в этой темке чуть выше. ) И уже был ответ на это, что это довольно странная теория, т.к. при работе скажем на голых строках в том же C# короче записать просто q+=p?"Field1=@p":"Field1 IS NULL";
IT>Ужос. Ты знаешь куда это привело человечество к концу 90-х? К BLL и DAL. Из-за того, что вот практически весь код приложений состоял из вот таких вот испражнений.
Ну да, DAL — это правильное решение для сложных проектов и особенно рассчитанных на работу с разными СУБД.
_>>вместо указанного ужастика. Но опять же это всё не касается случая C++ и той библиотечки, т.к. там вопрос с null просто не стоит. )))
IT> Т.е. глазки закрыли и мы в домике? В C++ нет налов, значит их не должно быть и в базе данных
В базе null конечно же может быть и для работы с ним там в библиотечке есть все необходимые средства (и соответствующий предикат условий и проверка результатов запросов). Автору даже предлагали сделать возврат значений для не "not null" колонок через std::optional (аналог Nullable<T> из C#), но он предпочёл обойтись проверочной функций (видимо из соображений эффективности).