Здравствуйте, Sharov, Вы писали:
НС>>Неправильно понимаешь. Концептуальная фишка linq это использование типов дотнета для построения запросов к БД. S>Это любое ORM умело еще до,
Нет. Я жирным выделил что ты не заметил.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[5]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>>>Неправильно понимаешь. Концептуальная фишка linq это использование типов дотнета для построения запросов к БД. S>>Это любое ORM умело еще до, НС>Нет. Я жирным выделил что ты не заметил.
А ну т.е. речь таки шла о деревьях выражений, а то я сразу не распознал.
Кодом людям нужно помогать!
Re[6]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Sharov, Вы писали:
НС>>Нет. Я жирным выделил что ты не заметил. S>А ну т.е. речь таки шла о деревьях выражений, а то я сразу не распознал.
Речь шла об использовании дотнетных типов. Деревья выражений это уже один из механизмов этого добиться.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[7]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Ночной Смотрящий, Вы писали:
VC>>Идентити, GUID, дефолтовые даты да и дефолты в базе в EF надо руками для каждой БД писать. разные они.
НС>Возьми FluentMigrator, там с этим полегче.
с остальным сложнее.
Re[7]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Sharov, Вы писали:
НС>>Речь шла об использовании дотнетных типов. Деревья выражений это уже один из механизмов этого добиться. S>Что такое "дотнетных типов"
Типов CLR
S> -- BCL, или любой класс\структра? А ORM что используют, не типы?
На этапе формирования запросов — нет, не используются. Либо вообще сырой SQL, либо какие то разновидности query object. Целевые типы используются только в момент обработки результата запросов.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Shmj, Вы писали:
S>Linq, при кажущейся простоте, потребовал:
S>
S> Generics S> Extension Methods S> Lamda expressions S> Expression trees S> Anonumus types S> Object initializers S> Type inferring S>
S>Это огромный пласт работы. Но и результат до сих пор впечатляет.
S>Есть ли что-либо подобное на других языках/платформах?
На Swift есть почти полноценная замена, хоть без безымянных типов, и что за Object initializers — я не понял, ну ещё groupJoin и некоторым другим функциям полноценной замены нет. Но зато расширения есть как для Sequence, так и LazySequence, так что отложенные запросы в случае надобности только, есть вариант и без отложенных. Но вот PLINQ замени нет.
Re[9]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, zverjuga, Вы писали:
Z>Здравствуйте, varenikAA, Вы писали:
D>>>Это ты про EF говоришь? AA>>ага, руки связыает порой.
Z>как то после нагрузочных тестов сервиса, использующего EF, перенес все к чертовой матери на хранимые процедуры. и только за счет этого получил увеличение скорости отклика сервиса примерно в 10 раз и в миллион раз — снижение нагрузки на память.
Чудеса! Как-то доводилось проверять EF на предмет узких мест, не нашёл, запросы напрямую выполняются примерно с той ж скоростью, настройки самой БД влияют по-настоящему, но не EF. Для удаления, конечно, хранимые процедуры, вытаскивать записи, чтоб их удалить — нелепо, но выборка, вставка, обновление через EF. Снижение нагрузки на память сервера или клиента БД? Тоже не наблюдал влияния EF. Ускорение в 10 раз — так вообще было б чудесно, но вот никакие хранимые процедуры таких чудес не давали.
Впрочем, если сервер БД далеко, ситуацию может быть другой, допускаю.
Re[9]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Механика LINQ никак не привязана к коллекциям, зачем глупости писать если не в теме?
Глупости тут только те, что ты мне приписал. Механика не связана. А назначение работать с коллекциями, IEnumerable и ко, используя выражения. Оно так задумывалось, и так работает из коробки.
Re[15]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, zverjuga, Вы писали: Z>это самый минимум проверки, которая проводится над токеном. еще есть роли, у которых разный уровень доступа к данным в базе. также нужно учитывать, что роль у профиля может быть в любой момент изменена как с клиента, так и с админской части. поэтому, любой запрос в сервис требует проверки.
best practice в этом — данный форум. Всё на linq, вместе с проверкой привилегий. Всё летает.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Poopy Joe, Вы писали:
НС>>Механика LINQ никак не привязана к коллекциям, зачем глупости писать если не в теме? PJ>Глупости тут только те, что ты мне приписал.
Ты прямо заявил, что LINQ это "частный случай для коллекций".
PJ> Механика не связана.
LINQ это не единая механика, это целый набор фич языка, каждая из которых вполне применима (и применяется) сама по себе. То что эти фичи объединили под неким зонтиком для релиза не делает их хуже.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[5]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Ты прямо заявил, что LINQ это "частный случай для коллекций".
Это и есть частный случай для коллекций. Он так задумывался, так реализован и так используется. Встроенные мета-язык даже не предполагает другого использования. Чистый закос sql, как и методы select вместо map и selectmany вместо bind.
Как там можно еще отдельные фичи использовать вопрос вообще второстепенный.
НС>LINQ это не единая механика, это целый набор фич языка, каждая из которых вполне применима (и применяется) сама по себе. То что эти фичи объединили под неким зонтиком для релиза не делает их хуже.
Это делает этот самый зонтик linq — частным случаем для коллекций. Ни в каком другом виде их никто не объединяет.
Re[6]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Poopy Joe, Вы писали:
НС>>Ты прямо заявил, что LINQ это "частный случай для коллекций". PJ>Это и есть частный случай для коллекций.
Нет.
PJ> Он так задумывался,
Расширений, которые задумывались исключительно для работы с коллекциями до LINQ было полно. И LINQ существенно от них отлдичался именно универсальностью большинства добавляемых фич.
PJ>Встроенные мета-язык даже не предполагает другого использования.
query comprehension это очень маленькая часть LINQ, не особо даже нужная. Но тем кто не разобрался да, QC застилает взор и создает впечатление, что это LINQ и есть.
НС>>LINQ это не единая механика, это целый набор фич языка, каждая из которых вполне применима (и применяется) сама по себе. То что эти фичи объединили под неким зонтиком для релиза не делает их хуже. PJ>Это делает этот самый зонтик linq — частным случаем для коллекций.
Нет.
PJ> Ни в каком другом виде их никто не объединяет.
А зачем их объединять? Ключевая фича, к примеру, это не query comprehension, а expression tree, и оно много где за пределами коллекций используется, в том числе искаропки.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[6]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Shmj, Вы писали:
S>Linq, при кажущейся простоте, потребовал:
S>
S> Generics S> Extension Methods S> Lamda expressions S> Expression trees S> Anonumus types S> Object initializers S> Type inferring S>
S>Это огромный пласт работы. Но и результат до сих пор впечатляет.
S>Есть ли что-либо подобное на других языках/платформах?
Еще нужно добавить про yield и ленивое выполнение.
То есть при выполнении цепочки
list.Where.Where.Select.Count
List пройдет всего один цикл ибо выполнение начнется с права на лево
Count вызовет MoveNext у Select, Select у Where и так далее.
По этому мы можем объединять Where без потери производительности на лишние циклы при вычислении цепочки слева на право.
и солнце б утром не вставало, когда бы не было меня
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Нет.
Нет почему? Потому что ты просто уперся?
НС>Расширений, которые задумывались исключительно для работы с коллекциями до LINQ было полно. И LINQ существенно от них отлдичался именно универсальностью большинства добавляемых фич.
И? Это никак не меняет назначение линка.
НС>query comprehension это очень маленькая часть LINQ, не особо даже нужная. Но тем кто не разобрался да, QC застилает взор и создает впечатление, что это LINQ и есть.
Это тебе чего-то там застилает взор и ты начинаешь излишне возбуждаться. Собственно про линк ты не говоришь ничего. Ты начинаешь доказывать, что его отдельные фичи можно и по другому использовать. Так и что с того? Фичи это не фреймворк.
НС>А зачем их объединять? Ключевая фича, к примеру, это не query comprehension, а expression tree, и оно много где за пределами коллекций используется, в том числе искаропки.
А зачем их объединили в линке?
Re[8]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Poopy Joe, Вы писали:
НС>>Нет. PJ>Нет почему?
А почему да?
НС>>Расширений, которые задумывались исключительно для работы с коллекциями до LINQ было полно. И LINQ существенно от них отлдичался именно универсальностью большинства добавляемых фич. PJ>И? Это никак не меняет назначение линка.
А назначение линка никак не меняет свойств добавленных конструкций.
PJ>Ты начинаешь доказывать, что его отдельные фичи можно и по другому использовать. Так и что с того?
Что эти фчи можно использовать не для коллекций.
PJ>Фичи это не фреймворк.
LINQ это тоже не фреймворк, а просто набор тех самых фич.
НС>>А зачем их объединять? Ключевая фича, к примеру, это не query comprehension, а expression tree, и оно много где за пределами коллекций используется, в том числе искаропки. PJ>А зачем их объединили в линке?
Такова на тот момент была политика релизов — все изменения нужно было приурочить к одной маркетинговой идее.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[9]: Есть ли подобие LINQ на других языках/платформах?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Здравствуйте, Poopy Joe, Вы писали:
НС>А почему да?
Я тебе написал почему да. Упертое нет, без аргументов, говорит само за себя.
НС>А назначение линка никак не меняет свойств добавленных конструкций.
Ну так и погоду линк не меняет, и что с того? Речь была о линке.
НС>Что эти фчи можно использовать не для коллекций.
Можно. А материал для шляпы может пойти на пальто. Но от этого шляпа пальтом не станет. А линк все так же останется для коллекций.
НС>LINQ это тоже не фреймворк, а просто набор тех самых фич.
Ну это уже вообще чушь пошла. МС не так релизила, МС не знает, что релизила. И вообще верить надо тебе не документации с мсдн... В сад.