|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
LameUserЭто кривой запрос или так надо писать по техническим причинам? Да я просто скопипастил пример с инета, главное показать количество джойнов, подобное приходится иногда делать, не часто, но иногда. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 17:03 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВIlya81О .Net'овском, который по идее должен обрабатывать в т. ч. механизм отложенных запросов, в т. ч. для классов Enumerable и ParallelEnumerable. Такого пока не придумали :) В смысле? Если зайти отладчиком в release'ный модуль, то часто можно наткнуться на то, что оптимизатор выкинул этот оператор, переменную и т. п.. А отложенные запросы, насколько я знаю, для того и сделаны отложенными, что только так есть возможность оптимизировать весь запрос, а не отдельные его элементы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 17:12 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Ilya81В смысле? Если зайти отладчиком в release'ный модуль, то часто можно наткнуться на то, что оптимизатор выкинул этот оператор, переменную и т. п.. Это оптимизации компилятора. Он заботиться об экономии памяти и увеличении быстродействия. Но он не делает логических оптимизаций, задача будет решаться именно так, как описал программист. СУБД же будет пытаться найти наилучший план исполнения запроса основываясь на индексах и статистике. Ilya81 А отложенные запросы, насколько я знаю, для того и сделаны отложенными, что только так есть возможность оптимизировать весь запрос, а не отдельные его элементы. А суть отложенного(ленивого) выполнения кода в том, что он не будет исполняться, пока кто то не запросит результат его выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 17:24 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВIlya81В смысле? Если зайти отладчиком в release'ный модуль, то часто можно наткнуться на то, что оптимизатор выкинул этот оператор, переменную и т. п.. Это оптимизации компилятора. Он заботиться об экономии памяти и увеличении быстродействия. Но он не делает логических оптимизаций, задача будет решаться именно так, как описал программист. СУБД же будет пытаться найти наилучший план исполнения запроса основываясь на индексах и статистике. Ilya81 А отложенные запросы, насколько я знаю, для того и сделаны отложенными, что только так есть возможность оптимизировать весь запрос, а не отдельные его элементы. А суть отложенного(ленивого) выполнения кода в том, что он не будет исполняться, пока кто то не запросит результат его выполнения. Ну не просто ж ради забавы запросы в LINQ сделаны отложенными. Но, в то ж время, для меня это является правилом, что на оптимизатор надейся, а сам... пиши уже с оптимизацией, если это только не снижает maintenability. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 17:28 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Ilya81Ну не просто ж ради забавы запросы в LINQ сделаны отложенными. Но, в то ж время, для меня это является правилом, что на оптимизатор надейся, а сам... пиши уже с оптимизацией, если это только не снижает maintenability. Ленивые вычисления дают возможность писать например такой код. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
С интенсивными вычислениями такого бы не получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 17:49 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВС интенсивными вычислениями такого бы не получилось. Круть. Пришлось погонять код - чтобы понять, кто кого "Skip". До меня сразу не дошло. :-) Осталось только дождаться бизнес задачи, когда надо будет пропускать заранее известное количество строк или еще чего и только потом "Take" опять же известное количество строк... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 18:41 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
D129ЕвгенийВС интенсивными вычислениями такого бы не получилось. Круть. Пришлось погонять код - чтобы понять, кто кого "Skip". До меня сразу не дошло. :-) Осталось только дождаться бизнес задачи, когда надо будет пропускать заранее известное количество строк или еще чего и только потом "Take" опять же известное количество строк... :-) А че её дожидаться - pagination ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 23:44 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
MonochromatiqueА че её дожидаться - pagination Строго говоря, это больше отображение... Делал однажды постраничную прокрутку сам... Потом купили контролы - и я заменил самописный "смарт грид" на покупной. Он гораздо круче. В бизнесе я с трудом представляю пропуск N первых записей в транзакции продаж или учете чего-либо... Чаще ищещь что-то конкретное - это да. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2015, 09:21 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВЛенивые вычисления дают возможность писать например такой код. ... С интенсивными вычислениями такого бы не получилось. Именно такие вещи я и называл оптимизацией, т. е. стоит Skip - результат не вычисляется, стоит Take - берётся столько, сколько запрошено. Другое дело, насколько этот оптимизатор развит в текущей версии .Net runtime, и осилит ли он определить нечто посложнее, скажем, что какое-то условие в Where является тавтологией и его можно выкинуть, или что условие уже сразу отсечёт кучу записей при выборке. Но моё мнение, на оптимизатор слишком надеяться не стоит и лучше не добавлять бессмысленные логические выражения, фильтрацию выполнять насколько возможно перед другими действиями и т. п., т. е. писать уже насколько возможно оптимизированный вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2015, 10:12 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Ilya81, Учите матчасть ! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2015, 10:21 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВIlya81, Учите матчасть ! Посмотрю, а то я, действительно, всё не мог собраться поизучать подробности способа выполнения отложенных запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2015, 10:25 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
у меня как у начинающего возникает вопрос почему между Fluent и Lambda expressions ставиться равенство. и тут возникает 2 вещи: разрыв шаблона в голове и два вопроса. Fluent API для настройки свойств. По написанию схож с Lambda expressions по смыслу рядом не стоит не с ним не с LINQ. Q1: Это так? Lambda expressions часть библиотеки LINQ Q2: это так? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 15:59 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Разве кто-то что-то говорил тут про Fluent API? https://translate.google.com/#en/ru/fluent ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 16:02 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Артем Gу меня как у начинающего возникает вопрос почему между Fluent и Lambda expressions ставиться равенство. Где вы это увидели? Артем GFluent API для настройки свойств. Это кто такое постановил? Артем GПо написанию схож с Lambda expressions Аналогично тому, как схожи бегемот и таракан. Артем Gпо смыслу рядом не стоит не с ним не с LINQ. Q1: Это так? Последнее процитированное - да. Остальное - нет. Артем GLambda expressions часть библиотеки LINQ Q2: это так? Нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 18:54 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
по поводу флюента и кто говорил. прям во втором посте и написано и далее по теме через пост. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 19:57 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Артем Gпо поводу флюента и кто говорил. прям во втором посте и написано и далее по теме через пост. Процитируйте этот пост еще раз, пожалуйста. Жирным выделите ту часть, где я написал про то, что флюент==лямбды. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 20:07 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Артем Gпо поводу флюента и кто говорил. прям во втором посте и написано и далее по теме через пост.не кто говорил про флюент, а кто говорил про Fluent API ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2015, 23:27 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
колотить... вот споры пошли, чё как называется ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 00:24 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttбольше всего обижает тот факт, что в LINQ не предусмотрен outer/full join, приходится юзать свои расширения. Больше всего обижает тот факт, что ты LINQ до сих пор так и не осилил. http://codearticles.ru/articles/925 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 14:03 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУБольше всего обижает тот факт, что ты LINQ до сих пор так и не осилил. http://codearticles.ru/articles/925 Больше всего обижает тот факт, что ты не знаешь, чем отличается full join от union select ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 14:20 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУБольше всего обижает тот факт, что ты LINQ до сих пор так и не осилил. http://codearticles.ru/articles/925 Больше всего обижает тот факт, что ты не знаешь, чем отличается full join от union select Еще больше всего обижает тот факт, что ты не умеешь читать код, в котором черным по-белому написано, что union объединяет left outer join и right outer join. Это и есть full outer join. Учи матчасть, отрок. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 14:33 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУЕще больше всего обижает тот факт, что ты не умеешь читать код, в котором черным по-белому написано, что union объединяет left outer join и right outer join. Это и есть full outer join. Учи матчасть, отрок.Еще больше обижает тот факт, что ты вписал эту ересь в рецепт, и с умным видом чего-то доказываешь. Union умеет объединять только однотипные коллекции и фактически представляет собой .Concat().Distinct(). Это к full join не имеет никакого отношения. Учи матчасть, дедушка. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 14:50 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProЕще больше обижает тот факт, что ты вписал эту ересь в рецепт, и с умным видом чего-то доказываешь. Union умеет объединять только однотипные коллекции и фактически представляет собой .Concat().Distinct(). Это к full join не имеет никакого отношения. Учи матчасть, дедушка. Еще больше обижает тот факт, что у тебя отсутствует мало-мальски серого вещества, что бы сделать под Union фейковое недостающее свойство, чтобы по нему можно было объединиться. Full outer join необходим для отображения всех возможных комбинаций строк из нескольких таблиц. Иными словами, это объединение результатов left и right join . Вот тут примеры конструкций http://www.javenue.info/post/20 Убей уже себя об стену, днище ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 14:59 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
У тебя память девичья, тебе замуж пора. Изначально речь шла о том, что нет нативной реализации FullJoin без костылей с граблями. А ты тут про фейковые костыли начал вещать - сливать тему. Что ты ссылки мне кидаешь на говностатьи про SQL, ты его сам сначала освой. Ну давай, покажи мастер класс полного внешнего объединения IEnumerable<{ int Id, string Name }> и IEnumerable<{ int Id, int Age }> по полю Id через "фейковое недостающее свойство". Потом не забудь рассказать для общего образования, как это будет выглядеть для IQueryable ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 15:21 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProУ тебя память девичья, тебе замуж пора. Изначально речь шла о том, что нет нативной реализации FullJoin без костылей с граблями. У тебя весь мозг вытек, хоть сено подложи, нужно же чем-то думать. Что такое "нативная реализация" FullJoin? Зачем она тебе? По такой же логики, нету и нативной реализации left outer join, ведь для этого нужно написать код: Код: c# 1. 2. 3. 4.
или тоже самое можно выразить через GroupJoin, Код: c# 1.
LINQ это мощный гибкий язык, с помощью него можно писать самые различные реализации. Откуда тут костыли и грабли? Ты просто еще не осилил этот язык, но берешься уже судить о каких-то костылях. Shocker.ProА ты тут про фейковые костыли начал вещать - сливать тему. Что ты ссылки мне кидаешь на говностатьи про SQL, ты его сам сначала освой. Я тебе про фейковое поле начал вещать, когда ты спросил про разные типы. Если типы коллекций разные, принято обобщать в однотипную коллекцию, причем тип может быть и анонимный - это еще более удобнее для написания LINQ запросов. Такие подходы применяют и в SQL, ничего нового не изобретено. Что тебя удивляет? Если же типы коллекций одинаковы, тогда вообще никаких вопросов не должно возникать, делать обычный Union для left и rigt джойнов. Всё. Shocker.ProНу давай, покажи мастер класс полного внешнего объединения IEnumerable<{ int Id, string Name }> и IEnumerable<{ int Id, int Age }> по полю Id через "фейковое недостающее свойство". Потом не забудь рассказать для общего образования, как это будет выглядеть для IQueryable Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: c# 1. 2.
Для IQueryable это будет выглядеть, как 2 обычные запроса left + right. А потом можно сделать локальный Union. Либо еще лучше, выбрать общую порцию по фильтру из таблицы и локально сделать left + right + union. В зависимости от задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 15:43 |
|
|
start [/forum/topic.php?fid=20&msg=38871636&tid=1401906]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 350ms |
total: | 507ms |
0 / 0 |