|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Познакомившись с LINQ после интенсивной работы с TSQL, я был в восторге от идеи использовать аналогичный синтаксис запросов в C# (типа from ... where ... select ...) Но через некоторое время обнаружил себя, пишушим запросы в текучем синтаксисе (....Where(n=>...).Select(n=>...)) и не испытывающим никакого желания использовать сахар. А вы какой синтаксис используете обычно и почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 18:35 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProПознакомившись с LINQ после интенсивной работы с TSQL, я был в восторге от идеи использовать аналогичный синтаксис запросов в C# (типа from ... where ... select ...) Но через некоторое время обнаружил себя, пишушим запросы в текучем синтаксисе (....Where(n=>...).Select(n=>...)) и не испытывающим никакого желания использовать сахар. А вы какой синтаксис используете обычно и почему? зависит от ситуации. сложный запрос лучше строить сахаром, так как на порядок читабельнее. ну и в сахаре есть плюшки, которых нет во флюенте, например, let больше всего обижает тот факт, что в LINQ не предусмотрен outer/full join, приходится юзать свои расширения. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 21:54 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Мне флюент нравится. Там посказки вылазят походу написания. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2015, 21:59 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttShocker.ProПознакомившись с LINQ после интенсивной работы с TSQL, я был в восторге от идеи использовать аналогичный синтаксис запросов в C# (типа from ... where ... select ...) Но через некоторое время обнаружил себя, пишушим запросы в текучем синтаксисе (....Where(n=>...).Select(n=>...)) и не испытывающим никакого желания использовать сахар. А вы какой синтаксис используете обычно и почему? зависит от ситуации. сложный запрос лучше строить сахаром, так как на порядок читабельнее. ну и в сахаре есть плюшки, которых нет во флюенте, например, let + "сахарный" join на порядок читабельнее. hVosttбольше всего обижает тот факт, что в LINQ не предусмотрен outer/full join, приходится юзать свои расширения .Покажи для left join ? зы: join стараемся не использовать, стараемся пользоваться ассоциациями. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 05:37 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttну и в сахаре есть плюшки, которых нет во флюенте, например, let Просто потому что во флюенте let не нужен - там есть такие вещи, как SelectMany, или возможность использовать в теле методов анонимные программные блоки. Например, msdn'овский пример про let: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
на флюенте легко переписывается в виде Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
P.S. Во всех случаях использую флюент - он лично для меня просто нагляднее. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 06:48 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныP.S. Во всех случаях использую флюент - он лично для меня просто нагляднее. А для меня - нет. Я использую флюент только в очевидных случаях, когда точно знаю, что ошибки в логике нет. У меня мышление такое - императивный подход мне ближе. :-) Чужие флюенты мне читать сложно - если вдруг он не сделал, что ожидалось - начинаю разделять, чтобы выцепить где проблема. Еще по началу (сейчас уже меньше нужно, привык), писал имя переменной (и во флюенте тоже) с префиксом each (from eachItem in Items) - тоже помогает не париться, что же имеется в виду - при написании условий ниже. Само предложение выглядит уже совсем по человечески. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 09:08 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Предпочитаю через лямбды. Трудно сказать почему, наверно, на SQL всё равно не сильно похож (from в начале и т. п.), а из общего стиля кода выбивается. Join и GroupJoin пользуюсь нередко. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 09:23 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
D129Сон Веры ПавловныP.S. Во всех случаях использую флюент - он лично для меня просто нагляднее. А для меня - нет. Я использую флюент только в очевидных случаях, когда точно знаю, что ошибки в логике нет. У меня мышление такое - императивный подход мне ближе. :-)Если уж на то пошло, то к императиву ближе как раз флюент, а сахар - к декларативу. Но по сути они декларативны оба, лишь синтаксис разный. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 09:28 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Antonariy, оба они императивны надо четко указать - что , откуда, как ... вытащить ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 09:43 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ViPRosAntonariy, оба они императивны надо четко указать - что , откуда, как ... вытащить Прикольно. Интересно, четвертый вариант мнения есть? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 10:06 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ViPRosAntonariy, оба они императивны надо четко указать - что , откуда, как ... вытащить Оба они декларативны, ибо нужно указывать что вытащить, но не как. P. S. Использую оба подхода, иногда вперемешку. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 11:32 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВViPRosAntonariy, оба они императивны надо четко указать - что , откуда, как ... вытащить Оба они декларативны, ибо нужно указывать что вытащить, но не как .Именно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 11:37 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
PS Сам чаще пишу флюент просто потому что основная функция - FirstOrDefault :) А если нужно отправить портянку в json, то сахар, потому что в sql меньше знаков препинания и прочего синтаксического "мусора", ради которого нужно лишний раз пинать шифт. Эргономика. А подсказки выходят везде. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 11:49 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВViPRosAntonariy, оба они императивны надо четко указать - что , откуда, как ... вытащить Оба они декларативны, ибо нужно указывать что вытащить, но не как. P. S. Использую оба подхода, иногда вперемешку. что это и есть что ты что пишешь - select (a,b,c)? или всеж добавляешь фром, джойн и т.д.? - это императив (приказ, как) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:18 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ViPRos, СКЛ - императивный язык пролог - нет (концептуальная часть) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:20 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Предпочитаю флюент, по той причине что работаю в проектах, где параллельно работают и другие программисты (к примеру знающие c# и не знающие T-SQL). Плюс флюент читаю намного проще нежели sql синтаксис. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:31 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ViPRosчто это и есть что ты что пишешь - select (a,b,c)? или всеж добавляешь фром, джойн и т.д.? - это императив (приказ, как) Я говорю выведи мне такие то поля, применив такие то соединения, условия или там группировки и получаю это. При императивном подходе, я сам прибираю данные и получаю нужный результат. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:31 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ViPRosСКЛ - императивный языкхорош гнать уже: http://progopedia.ru/paradigm/declarative/ ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:32 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
LameUser программисты (к примеру знающие c# и не знающие T-SQL). Как такое вообще возможно? Гнать таких поганой метлой, простейший то синтаксис должны знать! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:34 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВLameUser программисты (к примеру знающие c# и не знающие T-SQL). Как такое вообще возможно? Гнать таких поганой метлой, простейший то синтаксис должны знать! но нам же простейший синтаксис не интересен, когда мы флюентом не можем обойтись. на счет обучения - всему свое время :). Еще чисто визуально бесит SQL синтаксис в коде, т.к. у нас есть правила оформления кода (создавались еще до LINQ). Хоть они и дубовые, зато можно разбираться в чужом коде достаточно легко, если он оформлен по правилам. Особенно бесит миксованный синтаксис, например: Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:41 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КПокажи для left join ? зы: join стараемся не использовать, стараемся пользоваться ассоциациями. В последнем проекте вот что использую: https://github.com/thomaslevesque/Linq.Extras Это круть. А могли бы предусмотреть сразу и не пришлось бы так корячиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:44 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyViPRosСКЛ - императивный языкхорош гнать уже: http://progopedia.ru/paradigm/declarative/ да пофиг что там на заборе ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:44 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВViPRosчто это и есть что ты что пишешь - select (a,b,c)? или всеж добавляешь фром, джойн и т.д.? - это императив (приказ, как) Я говорю выведи мне такие то поля, применив такие то соединения, условия или там группировки и получаю это. При императивном подходе, я сам прибираю данные и получаю нужный результат. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
ты можешь это обернуть в метод и вызвать (применить метод такой то) от этого твой код не станет декларативным декларация - желание, а не путь ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:46 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныПросто потому что во флюенте let не нужен - там есть такие вещи, как SelectMany, или возможность использовать в теле методов анонимные программные блоки. Например, msdn'овский пример про let: Пример какой-то не очевидный. Тут let не особо нужен. Преимущества let становятся видны отчётливо самым не вооружённым глазом, когда начинаешь работать с типами и атрибутами в Reflection — если использовать там флюент, то можно мозг сломать, читая конструкции запросов. Не знаю, я уважаю чувства разработчиков, которым это придётся сопровождать и считаю, что иногда можно поступиться своими привычками в пользу универсальности сопровождения. Чем читабельнее код (не только для себя, но и для остальных) -- тем лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:47 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
LameUserОсобенно бесит миксованный синтаксис, например: Код: c# 1. 2. 3. 4. 5. 6.
Не знаю почему он бесит, но лично я вижу, что мысль выражена кристально ясно, чётко и легко читается, очень легко, так как код не перегружен знаками препинания и скобками. Что ещё надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 12:50 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttЧем читабельнее код (не только для себя, но и для остальных) -- тем лучше. Читаемость кода - штука субъективная, и зависящая, например, от привычки к тому или иному виду синтаксиса. Как вы могли убедиться по постингам выше, флюент-синтаксис более удобочитаемым считаю не один я. Что же до особо сложных и мозголомных конструкций внутри linq - я вообще против них, безотносительно синтаксиса, поскольку они идудт вразрез с принципом intention revealing. Только вынесение таких кусков в отдельные методы, и использование в простых linq-запросах. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 13:17 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
А часто пользуюсь длинными и вложенными запросами. Только при определённой длине ставлю скобки на разных строках подобно операторным скобкам, чтоб были понятны границы вложенных запросов/конструкций. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 13:20 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Только Fluent. По работе приходится писать не только на C#. Лямбды - они и в Индонезии лямбды :) А разбираться в сахаре, прибитом гвоздями к конкретному языку - расточительство )) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 13:22 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныhVosttЧем читабельнее код (не только для себя, но и для остальных) -- тем лучше. Читаемость кода - штука субъективная, и зависящая, например, от привычки к тому или иному виду синтаксиса. Как вы могли убедиться по постингам выше, флюент-синтаксис более удобочитаемым считаю не один я. Что же до особо сложных и мозголомных конструкций внутри linq - я вообще против них, безотносительно синтаксиса, поскольку они идудт вразрез с принципом intention revealing. Только вынесение таких кусков в отдельные методы, и использование в простых linq-запросах. Не вижу причин не пользоваться нативными средствами самого языка, если в отдельных случаях это может улучшить вид и читаемость кода. Принципы «а я вот так вот привык» и «а мне вот так вот больше нравится» — они конечно в определённой степени уместны (для личных разработок), но в целом — не серьёзные, детские и губительные. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 13:31 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ViPRosда пофиг что там на заборе ViPRosты можешь это обернуть в метод и вызвать (применить метод такой то) от этого твой код не станет декларативным декларация - желание, а не путьто есть ты отрицаешь общепринятое классификацию продуктов и толкование терминов, и напитываешь их соками мозга с претензией на сакральный смысл? гениально, чо. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 13:32 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Вот, кстати, интересное наблюдение. Чаще всего я использую флюент, так как чаще всего выражения короткие и связаны всего с одной коллекцией. Но иногда я использую сахар, при чём это уже выработано на интуитивном уровне, я не сижу и не размышляю, что же выбрать и не переписываю флюент в сахар или наоборот. Когда представляешь себя запрос и его сложность становится понятно, какой способ выбрать и никаких проблем в связи с этим не испытываю, поэтому у меня нет длиннющих флюент-цепочек, и я вообще никогда не применяю флюентный Join, так как назвать это иначе, чем «убожество» просто нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 13:40 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Не вижу ничего такого в Join через лямбды, сам часто его пишу. Если есть корпоративные стандарты и по этому вопросу тоже, конечно, другое дело, но если их по этому вопросу нет, то это кому как. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 13:49 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyViPRosда пофиг что там на заборе ViPRosты можешь это обернуть в метод и вызвать (применить метод такой то) от этого твой код не станет декларативным декларация - желание, а не путьто есть ты отрицаешь общепринятое классификацию продуктов и толкование терминов, и напитываешь их соками мозга с претензией на сакральный смысл? гениально, чо. не знаю кем это общепринятые в пролгое я просто справшиваю и получаю ответ а в скл я спрашиваю и указываю путь вплоть до On a=b и т.д. вплоть до алгоритма соспоставления массивов если кто то считает это декларативностью то тот кретин ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 13:56 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Ilya81Не вижу ничего такого в Join через лямбды, сам часто его пишу. Если есть корпоративные стандарты и по этому вопросу тоже, конечно, другое дело, но если их по этому вопросу нет, то это кому как. Затрудняет чтение. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Ещё вроде ничё так, да? А теперь изобрази вот это во флюенте, потом дай кому-нибудь прочесть: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 14:00 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttНе вижу причин не пользоваться нативными средствами самого языка Ээ.. Т.е. по-вашему, флюент - это не нативный синтаксис? А чей тогда? Откуда он взялся? И почему и запросный, и флюентный синтаксис транслируются в IL во всё те же анонимные делегаты, классы, и коллекции, при прочих равных выдавая почти идентичный IL-код? Код: c# 1. 2. 3. 4. 5.
IL Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90.
hVosttПринципы «а я вот так вот привык» и «а мне вот так вот больше нравится» — они конечно в определённой степени уместны (для личных разработок), но в целом — не серьёзные, детские и губительные. Я что-то писал про корреляцию моих личных предпочтений с принятыми на моем месте работы стандартами кодирования? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 14:01 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Сон Веры ПавловныЭэ.. Т.е. по-вашему, флюент - это не нативный синтаксис? А чей тогда? Откуда он взялся? И почему и запросный, и флюентный синтаксис транслируются в IL во всё те же анонимные делегаты, классы, и коллекции, при прочих равных выдавая почти идентичный IL-код? Всё правильно, а я что сказал? Я сказал только про синтаксис, а не во что он траслируется. И, как обычно, сравнивать что же таки лучше (флюент или сахар) без конкретных примеров — занятие бесперспективное. Покажи мне запрос, и я точно скажу что в данном случае будет лучше — об этом я говорил. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 14:08 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
извращенцы ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 14:10 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttIlya81Не вижу ничего такого в Join через лямбды, сам часто его пишу. Если есть корпоративные стандарты и по этому вопросу тоже, конечно, другое дело, но если их по этому вопросу нет, то это кому как. Затрудняет чтение. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Ещё вроде ничё так, да? А теперь изобрази вот это во флюенте, потом дай кому-нибудь прочесть: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Вообще-то да, видать, мне чаще больше одного join (как в верхнем примере) редко случается использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 14:14 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttIlya81Не вижу ничего такого в Join через лямбды, сам часто его пишу. Если есть корпоративные стандарты и по этому вопросу тоже, конечно, другое дело, но если их по этому вопросу нет, то это кому как. Затрудняет чтение. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Ещё вроде ничё так, да? А теперь изобрази вот это во флюенте, потом дай кому-нибудь прочесть: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Мне вот не понятно зачем это писать, если это должно быть автоматом в самом джойне: Код: c# 1. 2. 3. 4.
В джойне ведь уже должна быть автомат. фильтрация т.к. ты джойниш по этим полям. Код: c# 1. 2. 3. 4. 5.
Это кривой запрос или так надо писать по техническим причинам? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 14:24 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
LameUserЭто кривой запрос или так надо писать по техническим причинам? это он для верности :) (первый раз джойнил) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 14:48 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttАлексей КПокажи для left join ? зы: join стараемся не использовать, стараемся пользоваться ассоциациями. В последнем проекте вот что использую: https://github.com/thomaslevesque/Linq.Extras Это круть. А могли бы предусмотреть сразу и не пришлось бы так корячиться.Ок, посмотрю. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 15:11 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttСон Веры Павловны, Вот, кстати, интересное наблюдение. Чаще всего я использую флюент, так как чаще всего выражения короткие и связаны всего с одной коллекцией. Но иногда я использую сахар, при чём это уже выработано на интуитивном уровне, я не сижу и не размышляю, что же выбрать и не переписываю флюент в сахар или наоборот. Когда представляешь себя запрос и его сложность становится понятно, какой способ выбрать и никаких проблем в связи с этим не испытываю, поэтому у меня нет длиннющих флюент-цепочек, и я вообще никогда не применяю флюентный Join, так как назвать это иначе, чем «убожество» просто нельзя.++ Тут вполне жизненный пример. В нём комбинируются оба способа написания, в зависимости от ситуации. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 15:16 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Ilya81, Брюки Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
плавно превращаются в шорты Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 15:24 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Уж лучше where убрать, а второй вариант - надеяться только на оптимизатор, что он не станет генерировать полное декартово произведение. join всё ж явно подразумевает, что полное декартово произведение не понадобится. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 15:28 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Ilya81Уж лучше where убрать, а второй вариант - надеяться только на оптимизатор, что он не станет генерировать полное декартово произведение. join всё ж явно подразумевает, что полное декартово произведение не понадобится. Тут использование where много гибче. Например можно использовать не строгое равенство, а например >. Да и комбинации полей. Что касается SqlServer и Oracle, они тут не оплошают. За остальных не скажу. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 15:37 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВЧто касается SqlServer и Oracle, они тут не оплошают. За остальных не скажу. Речь об IQueryable или IEnumerable? Я LINQ часто применяю и при запросе коллекций логического слоя, там вообще БД может не быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 15:46 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Ilya81 Я LINQ часто применяю и при запросе коллекций логического слоя, там вообще БД может не быть. Тогда о каком оптимизаторе речь? Там вся надежда на прямоту рук и ParallelEnumerable. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 16:05 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ЕвгенийВIlya81 Я LINQ часто применяю и при запросе коллекций логического слоя, там вообще БД может не быть. Тогда о каком оптимизаторе речь? Там вся надежда на прямоту рук и ParallelEnumerable. О .Net'овском, который по идее должен обрабатывать в т. ч. механизм отложенных запросов, в т. ч. для классов Enumerable и ParallelEnumerable. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 16:41 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Ilya81О .Net'овском, который по идее должен обрабатывать в т. ч. механизм отложенных запросов, в т. ч. для классов Enumerable и ParallelEnumerable. Такого пока не придумали :) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 17:00 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей К Тут вполне жизненный пример. В нём комбинируются оба способа написания, в зависимости от ситуации. Вот-вот, об этом я и говорил, в сахаре такие запросы легко читаются, прям как в SQL, а в цепочке они были бы перегружены оверхедом с лямбдами, точками, скобками (все смешалось в кучу: люди, кони...)) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2015, 17:01 |
|
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 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУ, А-а-а-а-а-ха-ха-ха-ха-ха!!!!!!!!!!! Слив защитан!!!!!!!! Ты бы хоть проверил, прежде чем выложить! ))))))))))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 15:58 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Я понял, ты просто не знаешь чем отличается full join от cross join, видимо аббревиатуру SQL ты видел только в названии форума, на котором сидишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 16:02 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУ, А-а-а-а-а-ха-ха-ха-ха-ха!!!!!!!!!!! Слив защитан!!!!!!!! Обоснуй. Shocker.ProТы бы хоть проверил, прежде чем выложить! ))))))))))))) Да. Shocker.ProЯ понял, ты просто не знаешь чем отличается full join от cross join, видимо аббревиатуру SQL ты видел только в названии форума, на котором сидишь. Ты вообще дурак? Причем тут cross join? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 16:13 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУОбоснуй.сколько записей у тебя на выходе? А сколько должно быть при full join? Открывай учебник для первого класса по sql и читай-читай-читай. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 16:18 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУОбоснуй.сколько записей у тебя на выходе? А сколько должно быть при full join? Открывай учебник для первого класса по sql и читай-читай-читай. Ты реально дибил? Вот код. В первом случае - обычный full outer join, во втором - cross join. Запусти и почувствуй разницу. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Сходи в сад уже, бестолочь ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 16:21 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Дополнил рецепт кросс джойном, не знал, что даже такая элементарнщина у некоторых вызовет взрыв мозга. http://codearticles.ru/articles/925 Shocker.Pro, тебе кур пасти надо, а не программировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 16:24 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУ, Ну понятно, вместо того, чтобы честно признать свою неправоту, как всегда полил грязью других и съехал. Правильный ответ на вопрос (который ты предпочел слить и не ответил) - ТРИ ! (для первого примера), это скажет тебе любой школьник, изучающий sql два дня. Нет смысла продолжать, это апофеоз твоей упертой тупости. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 16:32 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУ, Ну понятно, вместо того, чтобы честно признать свою неправоту, как всегда полил грязью других и съехал. Я вот что-то не понимаю. Я тебе всё по полочкам расписал, дал код, рецепт выложил. Но ты продолжаешь упорото что-то бурлить себе под нос. Ты адекватен? Shocker.ProПравильный ответ на вопрос (который ты предпочел слить и не ответил) - ТРИ ! (для первого примера), это скажет тебе любой школьник, изучающий sql два дня. Нет смысла продолжать, это апофеоз твоей упертой тупости. Убей себя об стену. Упрощаем пример. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Итого, full outer вернет 3 записи, cross join вернет 6 записей. Где твоя логика? Ты называл мой запрос с Union кросс джойном. Ты реально дятел? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 16:39 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Только опять не сливайся и не уводи в сторону. Ответь конкретно по этому коду, упростил запрос максимально. Жду ответа. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 16:41 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУУпрощаем пример.Дубовая голова. Это не упрощенный, это вырожденный пример. Я написал конкретную простую задачу. Ты её решить не смог , не упростив до уровня детского сада. Придется тебе давать начальные уроки по SQL. Втыкай до просветления Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
предвосхищая твои наивные попытки опять съехать с темы и попенять мне на звездочку в селекте, можешь сразу заменить на Код: sql 1.
вообще, что там в селекте - насрать, это конечная выборка, она может быть любой ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 16:52 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУУпрощаем пример.Дубовая голова. Это не упрощенный, это вырожденный пример. Я написал конкретную простую задачу. Ты её решить не смог , не упростив до уровня детского сада. Дурикло картонное, вот решение твоего примера 17232964 Что не нравится? Ты его вообще запускал или как всегда тупым жалом водил? Shocker.ProПридется тебе давать начальные уроки по SQL. Втыкай до просветления Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
предвосхищая твои наивные попытки опять съехать с темы и попенять мне на звездочку в селекте, можешь сразу заменить на Код: sql 1.
вообще, что там в селекте - насрать, это конечная выборка, она может быть любой Днище, ты даже тестовый пример на транзакте не можешь нармально высрать, зачем тут CREATE и DROP таблиц? declare @A table (Id int, Name nvarchar(max)) declare @B table (Id int, Age int) Код: c# 1. 2. 3. 4. 5. 6.
Во-вторых, зачем ты сравниваешь возможности транзакта и LINQ? Это вообще разные по сути своей вещи. То, что в транзакте есть clause FULL JOIN, вовсе не обязывает её иметь в LINQ. Ты вообще о чем? Чем не понравился код на LINQ, который решает эту задачу? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 17:05 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
И ты опять уводишь от темы. Выше я написал вот этот код. Ты ляпнул, что Union - это кросс джойн. Тебе не стыдно было так обосраться-то, "знаток" сиквела? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 17:08 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУ, вот решение твоего примера 17232964 Что не нравится?тем, что оно не делает FullJoin, вот, собственно, и все МСУТо, что в транзакте есть clause FULL JOIN, вовсе не обязывает её иметь в LINQ.об этом, собственно и сожалеет Хвост. А ты с чего-то вдруг влез со свиным рылом, да и обосрался по полной. А теперь говоришь то же самое, что и Хвост, лишь бы не признавать, что в дерьмо вляпался. МСУЧем не понравился код на LINQ, который решает эту задачу?Он ее не решает. Ты даже три от четырех отличить не можешь (четырех от пяти во втором случае). Тебя в детском саду недоучили ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 17:18 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУТы ляпнул, что Union - это кросс джойнэто все твои грибы, я такого не говорил. Я говорил, что Union - это по сути union select из sql Меня кросс джойн на линке вообще не интересует, это любой дурачок написать может, не только ты. Проблема в том, что ты ниасилил написать full join, а теперь пытаешься слиться в кросс, мол просил тебя кто его реализовывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 17:20 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУ, вот решение твоего примера 17232964 Что не нравится?тем, что оно не делает FullJoin, вот, собственно, и все А что должно возвращаться в этом коде? Shocker.ProМСУТо, что в транзакте есть clause FULL JOIN, вовсе не обязывает её иметь в LINQ.об этом, собственно и сожалеет Хвост. А зачем он в LINQ, если full outer join можно получить через left + right + union? Ну возьми напиши себе метод, который выполняет эти 3 операции сразу. Полегчало? В LINQ нет и left join, но ни у кого проблем тоже не возникает - GroupJoin или into + DefaultIfEmpty в руки, и всё получится. LINQ это не SQL, дурилко. Shocker.ProМСУЧем не понравился код на LINQ, который решает эту задачу?Он ее не решает. Ты даже три от четырех отличить не можешь (четырех от пяти во втором случае). Тебя в детском саду недоучили Еще раз, внятно обоснуй, что он не решает. Напиши, что этот код по твоему мнению должен возвращать. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 17:30 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУТы ляпнул, что Union - это кросс джойнэто все твои грибы, я такого не говорил. А ты еще и пи..бол. Вот тут ты это ляпнул 17232905 на мой ответ, что full outer join - это left + right + union. Shocker.ProЯ говорил, что Union - это по сути union select из sql Ты это свой бабушке расскажи. Выше ссылка, слова назад не вернешь. Ты ясно и четко сказал, что то, что я написал выше - это кросс джойн. Ты эпический дол..ёб. Shocker.ProМеня кросс джойн на линке вообще не интересует, это любой дурачок написать может Как оказалось на деле, далеко не каждый дурачок может написать это Shocker.ProПроблема в том, что ты ниасилил написать full join, а теперь пытаешься слиться в кросс, мол просил тебя кто его реализовывать. Проблема в том, что ты не знаешь ни что такое full outer join, ни что такое cross join, ни что такое linq. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 17:34 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУА что должно возвращаться в этом коде?МСУЕще раз, внятно обоснуй, что он не решает. Напиши, что этот код по твоему мнению должен возвращать.я уже написал пример на SQL. Запусти - узнаешь, что он должен возвращать (по мнению любого, кроме тебя). МСУНу возьми напиши себе метод, который выполняет эти 3 операции сразуну так напиши - ты же пока только пургу гонишь, вместо того, чтобы показать, как правильно делать. Так в том-то и дело, что придется, что-то писать, какие-то конструкции трехэтажные создавать, хотя нативно можно было реализовать и быстрее и удобнее. Кроме того, из IQueryable можно получить в SQL-движок LEFT JOIN. Как получить FULL JOIN? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 17:40 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУТы ясно и четко сказал, что то, что я написал выше - это кросс джойн.да, и не отказываюсь, ты написал кросс джойн. исправь в моем sql-примере FULL на CROSS (убрав условие объединения) и ты получишь именно этот результат. Ты просто напросто написал два раза cross join вместо того, чтобы написать full join и cross join. Просто твой куриный мозг неспособен понять, что выбранные на выходе поля не имеют отношения к способу объединения записей. Если бы ты хоть немножко знал sql, тебе бы не пришлось это объяснять. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 17:44 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Вообще то в примере от МСУ действительно немного напутано. Full join вовсе не объединение left и right. Для Full будет 3 записи, для cross - 4. Упрощенный же пример не показывает сути. Там действительно full вернет 3 записи. зачем докапываться до drop table - непонятно, табличные переменные появились не так чтобы уж давно, вариант с временными таблицами ничем не плох Вот иллюстрация отличия одного джойна от другого: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Код от МСУ в спойлере, он неправильно отображает full join Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
Вот мой вариант, на качество кода не претендую, но ответ вроде правильный: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 17:54 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
[quot Shocker.Pro]МСУА что должно возвращаться в этом коде?МСУЕще раз, внятно обоснуй, что он не решает. Напиши, что этот код по твоему мнению должен возвращать.я уже написал пример на SQL. Запусти - узнаешь, что он должен возвращать (по мнению любого, кроме тебя)./quot] Ты код левый написал Мой Код: c# 1. 2.
Твой Код: c# 1. 2. 3. 4.
Разницу видишь? Shocker.ProМСУНу возьми напиши себе метод, который выполняет эти 3 операции сразуну так напиши - ты же пока только пургу гонишь, вместо того, чтобы показать, как правильно делать. Зачем мне его писать? Тебе же нужно что-то готовое. Shocker.ProКроме того, из IQueryable можно получить в SQL-движок LEFT JOIN. Как получить FULL JOIN? Я тебе уже 10 раз писал. Делай left, делай right, делай union. Это будет full. Если речь о готовой функции в EF, то такой нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 18:23 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУТы ясно и четко сказал, что то, что я написал выше - это кросс джойн.да, и не отказываюсь, ты написал кросс джойн. исправь в моем sql-примере FULL на CROSS (убрав условие объединения) и ты получишь именно этот результат. Ты просто напросто написал два раза cross join вместо того, чтобы написать full join и cross join. Просто твой куриный мозг неспособен понять, что выбранные на выходе поля не имеют отношения к способу объединения записей. Если бы ты хоть немножко знал sql, тебе бы не пришлось это объяснять. Я правильно понимаю, что ты утверждаешь, что будет одинаковый результат с одинаковым количеством строк? Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 18:25 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУДелай left, делай right, делай union Ключевая ошибка. Full - это все строки из одной таблицы, не имеющиеся в другой + строки из другой таблицы, не имеющиеся в первой, + inner join ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 18:28 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУМойМСУРазницу видишь?я же тебе говорил, что у тебя память девичья. 17232852 впрочем, я не верю, что ты не понимаешь, что мой пример относится к твоему первому коду, а не к второму, ты просто сливаешь за счет того, что пытаешься придраться на пустом месте, вместо того, чтобы решить задачу, которую тебе, видимо, решить слабо. МСУЗачем мне его писать?затем, чтоМСУБольше всего обижает тот факт, что ты LINQ до сих пор так и не осилил. докажи, что его осилил ты. Пока что ты трепло. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 18:33 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Arm79Код от МСУ в спойлере, он неправильно отображает full join Как это не правильно? Вот, всё тоже самое для твоего примера с Васями. Еще раз: full join = left + right + union. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 18:34 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Arm79МСУДелай left, делай right, делай union Ключевая ошибка. Full - это все строки из одной таблицы, не имеющиеся в другой + строки из другой таблицы, не имеющиеся в первой, + inner join Не ключевая ошибка, ты забыл, что в твоем примере ты уже работаешь с объектами и пытаешься их схлопнуть. См. как сделано у меня с FirstOrDefault. Не забывай про это. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 18:35 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУМойМСУРазницу видишь?я же тебе говорил, что у тебя память девичья. 17232852 Тут не память, а проблемы с логикой в твоей дырявой голове. После этого кода ты начал спрашивать о кол-ве записей, в первоначальном варианте было 2x2, я же тебе смоделировал 2x3, чтобы не было путаницы с кол-вом записи. И выразил кодом вот тут 17232964 Ты мало того, код не читаешь, так в добавок ты еще днище глупое. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 18:37 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУЯ правильно понимаю, что ты утверждаешь, что будет одинаковый результат с одинаковым количеством строк?да, я не прав Код: c# 1. 2.
- это таки-да, не кросс, как я уже сказал - это union select. Но, как я уже сказал, кросс меня не интересует, спор начался про full - ты упорно пытаешь увести в сторону ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 18:41 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУты начал спрашивать о кол-ве записей, в первоначальном варианте было 2x2, я же тебе смоделировал 2x3браво, это бага, а не фича оказывается. Ты не смог решить задачу в простом варианте 2x2, чтобы нормально вернуло три записи, вбросил еще один пример и начал уводить в сторону, зацепившись за мое неосторожное высказывание про кросс. Забудь про кросс, я не прав. Вернись к фулл. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 18:43 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУ, нет смысла спорить. Я взял ровно тот код, который ты давал вначале. Он не работает. Да, последний твой код выдает нужное количество строк. Сделай правильно вариант с возрастом, сравним с Sql-выдачей. Просто я уже запутался в этих GroupJoin и прочее. Если объединения, я предпочитаю сахар, а не method chaining ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 18:55 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУЯ правильно понимаю, что ты утверждаешь, что будет одинаковый результат с одинаковым количеством строк?да, я не прав Код: c# 1. 2.
- это таки-да, не кросс Планомерно соглашаешься, что ты упертый идиот? Забавно. Shocker.Proкак я уже сказал - это union select. Неужели? Ты просто кладезь знаний, когда говоришь, что union - это union Shocker.ProНо, как я уже сказал, кросс меня не интересует, спор начался про full - ты упорно пытаешь увести в сторону Ну хорошо, с кроссом ты обосрался. А что с full не так? Shocker.ProМСУты начал спрашивать о кол-ве записей, в первоначальном варианте было 2x2, я же тебе смоделировал 2x3браво, это бага, а не фича оказывается. Почему фича? В первом случае я тебе привел матрицу 2x2, потом 2x3. Чтобы тебе объяснить, что ты лажанулся с подсчетом кол-ва строк. Shocker.ProЗабудь про кросс, я не прав. Вернись к фулл. Ок. Что по фуллу? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 19:28 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Arm79МСУ, нет смысла спорить. Я взял ровно тот код, который ты давал вначале. Он не работает. Да, последний твой код выдает нужное количество строк. Отлично, ты взял тот код, добавил своих Васей и начал сравнивать с SQL. Я тебе дал другой код, построенный по аналогии. Arm79Сделай правильно вариант с возрастом, сравним с Sql-выдачей. Просто я уже запутался в этих GroupJoin и прочее. Если объединения, я предпочитаю сахар, а не method chaining Ну я же сделал. Последний код, заточенный под Васи. Сравнивай. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 19:30 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУПланомерно соглашаешьсяпризнаю что я не прав, там, где я не прав. У тебя на это кишка тонка. МСУОк. Что по фуллу?Что по фуллу? МСУ так и не родил код, который вернет три записи для моего первоначального ТЗ. Вместо этого упорно изображает из себя старого пня и переспрашивает по десять раз одно и то же ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 19:37 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУПланомерно соглашаешьсяпризнаю что я не прав, там, где я не прав. У тебя на это кишка тонка. А сколько было шума, истерики, поучений в SQL. А на деле оказался обычным студентом-параноиком. Согласен? Shocker.ProМСУОк. Что по фуллу?Что по фуллу? МСУ так и не родил код, который вернет три записи для моего первоначального ТЗ. Вместо этого упорно изображает из себя старого пня и переспрашивает по десять раз одно и то же Точно так же, как не родил код по кросс джойну? Короче, вот рецепт http://codearticles.ru/articles/925 Сиди, кури его. Если не осилишь, тогда можешь пойти в гувернантки. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 19:39 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУА сколько было шума, истерики, поучений в SQL. А на деле оказался обычным студентом-параноиком. Согласен?нет. У тебя все еще детсадовские знания на предмет объединений, но к моим поучениям добавить нечего, ты их не осилил. МСУТочно так же, как не родил код по кросс джойну?я и не просил этот код, ты сам решил его написать, потому что full ниасилил. МСУКороче, вот рецепткороче, рецепт в помойку. Он не вернет правильный результат для моего первоначального примера. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 19:44 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
вы как дети малые тут срётесь. Умейте сдерживаться и останавливаться 1ым. Вам, что по 10 лет обоим? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 19:54 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProМСУА сколько было шума, истерики, поучений в SQL. А на деле оказался обычным студентом-параноиком. Согласен?нет. У тебя все еще детсадовские знания на предмет объединений, но к моим поучениям добавить нечего, ты их не осилил. А ты забавен. Обосрался и еще ярлыки другим вешает. Ты даже тестовый SQL код через жопу написал, с какими-то drop table. Твои "знания" просто распирают наружу, ага. Shocker.ProМСУТочно так же, как не родил код по кросс джойну?я и не просил этот код, ты сам решил его написать, потому что full ниасилил. Full - в рецептах для идиотов вроде тебя и тут. Купи мозг и поймешь суть. Shocker.ProМСУКороче, вот рецепткороче, рецепт в помойку. Он не вернет правильный результат для моего первоначального примера. Проще всего сказать на помойку, облажавшись и так ничерта не поняв принцип работы. Почему он вернет не правильный результат? Он выражается в кол-ве строк, о которых ты писал. Или что? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2015, 19:54 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Roman Mejtesвы как дети малые тут срётесь. Умейте сдерживаться и останавливаться 1ым. Вам, что по 10 лет обоим?++ Тем более, что full outer join на практике вообще не встречается у обычных людей. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 05:53 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУhVosttбольше всего обижает тот факт, что в LINQ не предусмотрен outer/full join, приходится юзать свои расширения. Больше всего обижает тот факт, что ты LINQ до сих пор так и не осилил. http://codearticles.ru/articles/925 Чё ты несешь? Покажи, где эти ключевые слова left/right/outer? Ну или что-то похожее. Про говноэкстеншены уже говорилось, но ты просто не увидел — как обычно ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 06:33 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КRoman Mejtesвы как дети малые тут срётесь. Умейте сдерживаться и останавливаться 1ым. Вам, что по 10 лет обоим?++ Тем более, что full outer join на практике вообще не встречается у обычных людей. Зато встречается outer join и очень часто. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 06:39 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КТем более, что full outer join на практике вообще не встречается у обычных людей. Хотя и full тоже часто встречается. Самый распространённый кейс: синхронизация изменений в коллекциях. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 06:42 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttАлексей Кпропущено... ++ Тем более, что full outer join на практике вообще не встречается у обычных людей. Зато встречается outer join и очень часто.Часто встречается left join . Но, благодаря ассоцианиям, вручную его писать приходится редко. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 06:42 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttАлексей КТем более, что full outer join на практике вообще не встречается у обычных людей. Хотя и full тоже часто встречается. Самый распространённый кейс: синхронизация изменений в коллекциях.Непонятно в каких коллекциях. Речь идёт о БД и SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 06:45 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttМСУпропущено... Больше всего обижает тот факт, что ты LINQ до сих пор так и не осилил. http://codearticles.ru/articles/925 Чё ты несешь? Покажи, где эти ключевые слова left/right/outer? Ну или что-то похожее. Про говноэкстеншены уже говорилось, но ты просто не увидел — как обычно Открой файл Extensions.cs, блондинка. hVosttАлексей Кпропущено... ++ Тем более, что full outer join на практике вообще не встречается у обычных людей. Зато встречается left outer join и очень часто. Поправил, а то ты через жопу как всегда пишешь. И делается left outer join тупо он одним запросом. Зачем что-то еще? Учи LINQ. hVosttАлексей КТем более, что full outer join на практике вообще не встречается у обычных людей. Хотя и full тоже часто встречается. Самый распространённый кейс: синхронизация изменений в коллекциях. Не вспомню ни одного примера, где был нужен фулл. Вот кросс джойн периодически нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 12:12 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУОткрой файл Extensions.cs, блондинка. Накой мне эта поделка? Ссылку на оттестированный, отлаженный и отлично рабочий NuGet-пакет я давал в этой теме. А в твоей корявой поделке даже тестов нет. Фу-фу-фу. МСУПоправил, а то ты через жопу как всегда пишешь. И делается left outer join тупо он одним запросом. Зачем что-то еще? Учи LINQ. Чё ты опять несёшь? В SQL есть LEFT JOIN. Где аналог в LINQ? То, что можно сделать — ясно. Так можно и глаз через анальный проход вылечить. Ты покажи left join в LINQ, харе выпендриваться. МСУНе вспомню ни одного примера, где был нужен фулл. Вот кросс джойн периодически нужен. Примеров масса. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:22 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КНепонятно в каких коллекциях. Речь идёт о БД и SQL. Отправил на клиента: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Получил от клиента: Код: javascript 1. 2. 3. 4.
т.е. изменили состав владельцев. Вот здесь может пригодиться full outer join: получить общий список владельцев (Owners) -- в левой части актуальные, в правой изменённые, пройтись по этому списку и добавить, либо удалить. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:30 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttВ SQL есть LEFT JOIN. Где аналог в LINQ? Дык вот же: https://msdn.microsoft.com/en-us/library/bb397895.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:31 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Или вот: http://habrahabr.ru/sandbox/39626/ вариант с джойнами интересно сделан ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:37 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Arm79hVosttВ SQL есть LEFT JOIN. Где аналог в LINQ? Дык вот же: https://msdn.microsoft.com/en-us/library/bb397895.aspx Код: c# 1.
Это не аналог left join, это способ его выполнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:39 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Arm79Или вот: http://habrahabr.ru/sandbox/39626/ вариант с джойнами интересно сделан Да, смотрел это зубодробительную попытку вкорячить в синтаксис LINQ отсутствующие конструкции. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:40 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttАлексей КНепонятно в каких коллекциях. Речь идёт о БД и SQL. Отправил на клиента: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Получил от клиента: Код: javascript 1. 2. 3. 4.
т.е. изменили состав владельцев. Вот здесь может пригодиться full outer join: получить общий список владельцев (Owners) -- в левой части актуальные, в правой изменённые, пройтись по этому списку и добавить, либо удалить.Это LINQ-2-Object. Я имел ввиду LINQ-2-SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:46 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Спору нет. В штатной комплектации поддержки Outer-джойнов нет. Но в штатной комплектации много чего нет. На то и разработчики нужны, чтобы "я его слепила из того что было а потом что было то и полюбила". Эта зубодробительная попытка показывает одни подход в решению задачи - подменять исходные данные так, чтобы стандартный join выдавал правильные результаты. Вторая попытка - реализовать extention - методы для IEnumerable. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:47 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttArm79Или вот: http://habrahabr.ru/sandbox/39626/ вариант с джойнами интересно сделан Да, смотрел это зубодробительную попытку вкорячить в синтаксис LINQ отсутствующие конструкции.+ которую вряд ли Entity Framework преобразует в SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:48 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Arm79Спору нет. В штатной комплектации поддержки Outer-джойнов нет. Но в штатной комплектации много чего нет. На то и разработчики нужны, чтобы "я его слепила из того что было а потом что было то и полюбила". Эта зубодробительная попытка показывает одни подход в решению задачи - подменять исходные данные так, чтобы стандартный join выдавал правильные результаты. Вторая попытка - реализовать extention - методы для IEnumerable.Тут не соглашусь. Одной из целей создания LINQ есть упрощение интеграции C# с SQL. Должны были сделать нормальный outer join, просто обязаны. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:50 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttМСУОткрой файл Extensions.cs, блондинка. Накой мне эта поделка? Не знаю. hVosttСсылку на оттестированный, отлаженный и отлично рабочий NuGet-пакет я давал в этой теме. А в твоей корявой поделке даже тестов нет. Фу-фу-фу. Чё там тестировать-то? hVosttЧё ты опять несёшь? В SQL есть LEFT JOIN. Где аналог в LINQ? Вот: Код: c# 1. 2. 3. 4.
Это 100% аналог left join, транслируется он так же корректно. hVosttТо, что можно сделать — ясно. Жжешь Ты хочешь единую "оттестированную" кнопку с нугета, с надписью "сделать всё"? hVosttТак можно и глаз через анальный проход вылечить. Ты покажи left join в LINQ, харе выпендриваться. Если ты не умеешь готовить LINQ, то тебе и анальный проход не поможет. Инфа 147%. hVosttМСУНе вспомню ни одного примера, где был нужен фулл. Вот кросс джойн периодически нужен. Примеров масса. Например? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:55 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КhVosttпропущено... Да, смотрел это зубодробительную попытку вкорячить в синтаксис LINQ отсутствующие конструкции.+ которую вряд ли Entity Framework преобразует в SQL. В общем, тут нет смысла сомневаться. Ни один провайдер не преобразует хабрахабровский вариант Алексей КТут не соглашусь. Одной из целей создания LINQ есть упрощение интеграции C# с SQL. Должны были сделать нормальный outer join, просто обязаны. Left Join посредством DefaultIfEmty() (right join - это в принципе тот же left) поддерживают, а вот Full - сомнительно, что провайдер настолько интеллектуальный, чтобы преобразовать в FULL OUTER JOIN комбинацию из двух LEFT + UNION ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:58 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttArm79пропущено... Дык вот же: https://msdn.microsoft.com/en-us/library/bb397895.aspx Код: c# 1.
Это не аналог left join, это способ его выполнить. Ну это к разработчикам LINQ все вопросы. Они сделали именно так, не нравится - используй другие ORM. Хотя я не вижу проблем привыкнуть к тому, что дают разработчики платформы. Твои сопли - это унылое нытьё. Соберись, тряпка! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 13:58 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Arm79а вот Full - сомнительно, что провайдер настолько интеллектуальный, чтобы преобразовать в FULL OUTER JOIN комбинацию из двух LEFT + UNION Честно говоря, нафик не нужно. Я не вспомню ни одного случая, где мы мне понадобился full join. Детские обучающие примеры и тренинг-рецептики не в счёт. И даже если понадобится full, можно просто запросить обычным запросом факты из БД и собрать full join на клиенте. Ясно, что факты - это не вся выборка из таблицы, а некая фильтрованная часть. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 14:01 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Arm79Спору нет. В штатной комплектации поддержки Outer-джойнов нет. Но в штатной комплектации много чего нет. На то и разработчики нужны, чтобы "я его слепила из того что было а потом что было то и полюбила". Эта зубодробительная попытка показывает одни подход в решению задачи - подменять исходные данные так, чтобы стандартный join выдавал правильные результаты. Вторая попытка - реализовать extention - методы для IEnumerable. Ну экстеншенов подобных развелось много. Речь шла о печали на тему того, что нет синтаксиса к часто используемым конструкциям, только и всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 14:09 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУЧё там тестировать-то? Экстеншены. Я уже давно понял, что ты всегда избегаешь юнит-тестирования, полагаясь на своё обычное наивное «чё там тестировать-то». Ну за ето не мне тебя судить, но такие поделки — предлагай своим коллегам-студентам. МСУЭто 100% аналог left join, транслируется он так же корректно. Это не аналог left join. Это то, что в результате работает КАК left join, но аналогом синтаксической указанной конструкции не является. МСУЕсли ты не умеешь готовить LINQ, то тебе и анальный проход не поможет. Инфа 147%. Тя заклинило на готовке, может ты не ту специализацию выбрал? Пока ещё не поздно пойди работать поваром! МСУНапример? Привёл выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 14:15 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУНу это к разработчикам LINQ все вопросы. Они сделали именно так, не нравится - используй другие ORM. Хотя я не вижу проблем привыкнуть к тому, что дают разработчики платформы. Твои сопли - это унылое нытьё. Соберись, тряпка! Ну вот к ним и адресованы эти вопросы, что ж ты такой непонятливый. Может ты объяснишь нам, что им помешало вкорячить ключевые слова left/right/full? Поделись что ли секретом. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 14:16 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttМСУЧё там тестировать-то? Экстеншены. Я уже давно понял, что ты всегда избегаешь юнит-тестирования, полагаясь на своё обычное наивное «чё там тестировать-то». Ну за ето не мне тебя судить, но такие поделки — предлагай своим коллегам-студентам. Ну протестируй экстеншены. В чем проблема? Я не понимаю проблемы, которую ты высосал из пальца. Или ты предлагаешь минимум писать код и максимум его грузить откуда-то из нугета от пионеров, которые уже протестировали свои поделки? Я правильно понял? hVosttЭто не аналог left join. Это то, что в результате работает КАК left join, но аналогом синтаксической указанной конструкции не является. Да, это не аналог left join, это и есть left join. Абсолютно верно. Так в чем твои страхи-то? Написать строчку кода - это проблема? hVosttМСУЕсли ты не умеешь готовить LINQ, то тебе и анальный проход не поможет. Инфа 147%. Тя заклинило на готовке, может ты не ту специализацию выбрал? Пока ещё не поздно пойди работать поваром! Меня-то не заклинило, я решаю проблемы по мере их поступления, а не несу очередную околопоносицу про какие-то жуткие страшилки о том, что нужно весь код сливать из нугета, потому что он уже протестирован. hVosttМСУНапример? Привёл выше. Вот здесь может пригодиться full outer join: получить общий список владельцев (Owners) -- в левой части актуальные, в правой изменённые, пройтись по этому списку и добавить, либо удалить. Это называется каша и в голове и в коде. Бизнес модель должна явным образом отражать данные и операцию, которую нужно с ними проделать. Вместо вываливания кашей этого в full outer join, сделай себе объект с n коллекциями и признаком, что нужно делать с этой коллекцией - добавлять, изменять, удалять. Такая модель легко тестируется и живет. Во-вторых, я так и не понял, как ты собираешься отделять в своей каше элементы, которые нужно добавить, изменить, удалять? Идея, конечно, заслуживает медали маразматика, но всё же. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 14:51 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttМСУНу это к разработчикам LINQ все вопросы. Они сделали именно так, не нравится - используй другие ORM. Хотя я не вижу проблем привыкнуть к тому, что дают разработчики платформы. Твои сопли - это унылое нытьё. Соберись, тряпка! Ну вот к ним и адресованы эти вопросы, что ж ты такой непонятливый. Может ты объяснишь нам, что им помешало вкорячить ключевые слова left/right/full? Поделись что ли секретом. Так тебе дали функционал в руки, бери и пользуйся. Я не знаю, что им помешало вкорячить, но первые 2 запроса делаются элементарно из одной строчки кода. Нужность третьего практически нулевая. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 14:53 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУЭто называется каша и в голове и в коде. Бизнес модель должна явным образом отражать данные и операцию , которую нужно с ними проделать. Вместо вываливания кашей этого в full outer join, сделай себе объект с n коллекциями и признаком, что нужно делать с этой коллекцией - добавлять, изменять, удалять. Такая модель легко тестируется и живет. Во-вторых, я так и не понял, как ты собираешься отделять в своей каше элементы, которые нужно добавить, изменить, удалять? Идея, конечно, заслуживает медали маразматика, но всё же.Никто никому ничего не должен. Бывает неудобно добавлять в модель свойство с типом операции сохранения. Но мне больше нравится такое решение: public static void AttachManyAs<T>(this DbContext ctx, IEnumerable<T> items, Expression<Func<T, bool>> existingItemsFilter) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 15:01 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КНикто никому ничего не должен. Бывает неудобно добавлять в модель свойство с типом операции сохранения. Да, хранить кашеобразные данные с последующей фильтрацией по магическим нуллам - это очень удобно. Особенно, когда добавится новый очевидный тип операции ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 15:05 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУАлексей КНикто никому ничего не должен. Бывает неудобно добавлять в модель свойство с типом операции сохранения. Да, хранить кашеобразные данные с последующей фильтрацией по магическим нуллам - это очень удобно. Особенно, когда добавится новый очевидный тип операции Какой новый тип операции в круде? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 15:06 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей ККакой новый тип операции в круде? Причем тут круд? Операции: создать изменить удалить отправить по почте послать на х..й убить об стену Мало? Какой full join, зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 15:23 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУАлексей ККакой новый тип операции в круде? Причем тут круд?Такая постановка задачи: изменить содержимое БД в соответствии с указанной коллекцией и фильтром по БД. МСУОперации: создать изменить удалить отправить по почте послать на х..й убить об стену Мало? Это не круд. МСУКакой full join, зачем?Да. До настоящего момента был нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 15:26 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КТакая постановка задачи: изменить содержимое БД в соответствии с указанной коллекцией и фильтром по БД. Решение: тип + сами коллекции. Или лучше всё это в base64 закодировать, а потом по magic-условиям выгребать? :) Алексей КЭто не круд Чегойто? Алексей КМСУКакой full join, зачем?Да. До настоящего момента был нужен. Хз, не понимаю его нужности применительно с данной задаче. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 15:52 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУАлексей КТакая постановка задачи: изменить содержимое БД в соответствии с указанной коллекцией и фильтром по БД. Решение: тип + сами коллекции.Не хочу. МСУИли лучше всё это в base64 закодировать, а потом по magic-условиям выгребать? :)А вы всё шутите... МСУАлексей КЭто не круд Чегойто? В моём понимании там круд + что-то ещё. МСУАлексей Кпропущено... Да. До настоящего момента был нужен. Хз, не понимаю его нужности применительно с данной задаче.Ну способ слить существующее с сохраняемым. Только я тут не при чём. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 16:04 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КМСУКакой full join, зачем?Да. До настоящего момента был НЕ нужен.Поправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 16:05 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КМСУРешение: тип + сами коллекции.Не хочу. Ну не хочешь называть вещи своими именами, тогда парсь, интерпретируй свои magic нуллы. Я не против. Качество такой модели уровня канализации. Алексей КМСУИли лучше всё это в base64 закодировать, а потом по magic-условиям выгребать? :)А вы всё шутите... А вы действительно считаете, что этот способ намного хуже интерпретации магических нулей? Алексей КМСУпропущено... Чегойто? В моём понимании там круд + что-то ещё. Так. И? Алексей КНу способ слить существующее с сохраняемым. Только я тут не при чём. Я понимаю, это способ. Рабочий способ. По сути такой же, как и бубнотряска с base64, озвученная выше. Так? Спасибо, лесом такой магик код )) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 16:18 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУАлексей Кпропущено... Не хочу. Ну не хочешь называть вещи своими именами, тогда парсь, интерпретируй свои magic нуллы. Я не против. Качество такой модели уровня канализации. Алексей Кпропущено... А вы всё шутите... А вы действительно считаете, что этот способ намного хуже интерпретации магических нулей? Про "магический нуль" до сих пор не понял. МСУАлексей Кпропущено... В моём понимании там круд + что-то ещё. Так. И? И всё! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 16:37 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КПро "магический нуль" до сих пор не понял. ХвостВот здесь может пригодиться full outer join: получить общий список владельцев (Owners) -- в левой части актуальные, в правой изменённые, пройтись по этому списку и добавить, либо удалить. Мась, а тебе отгадай, как он в full outer join'е собирается отделять мух от котлет? :) Алексей КМСУпропущено... Так. И? И всё! А ничего! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 16:43 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУАлексей КПро "магический нуль" до сих пор не понял. ХвостВот здесь может пригодиться full outer join: получить общий список владельцев (Owners) -- в левой части актуальные, в правой изменённые, пройтись по этому списку и добавить, либо удалить. Мась, а тебе отгадай, как он в full outer join'е собирается отделять мух от котлет? :)Ну поджойнит по первичному ключу да отделит. Не вижу проблемы. Я в том примере делаю примерно то же самое. МСУАлексей Кпропущено... И всё! А ничего! Слабак! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 17:21 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУНу протестируй экстеншены. В чем проблема? Я не понимаю проблемы, которую ты высосал из пальца. Или ты предлагаешь минимум писать код и максимум его грузить откуда-то из нугета от пионеров, которые уже протестировали свои поделки? Я правильно понял? Нет, пилять, копипастить куски непонятного кода ХЗ откуда МСУДа, это не аналог left join, это и есть left join. Абсолютно верно. Так в чем твои страхи-то? Написать строчку кода - это проблема? это не есть left join, это синтаксически совершенно разные конструкции, хотя результат один и тот же. с точки зрения получения результата вопросов нет, покрайней мере left можно получить сравнительно малой кровью . но вот full outer без кастомных громоздких экстеншенов нечитабелен чуть менее, чем полностью, так что не ипай нам тут мозг своей хернёй МСУМеня-то не заклинило, я решаю проблемы по мере их поступления, а не несу очередную околопоносицу про какие-то жуткие страшилки о том, что нужно весь код сливать из нугета, потому что он уже протестирован. Потому что тестирование это для тебя нечто неведомое, давай не мажся, просто ты не умеешь пользоваться тестами (_не умеешь их готовить_). Но это не мои проблемы, а твои МСУЭто называется каша и в голове и в коде. Бизнес модель должна явным образом отражать данные и операцию, которую нужно с ними проделать. Вместо вываливания кашей этого в full outer join, сделай себе объект с n коллекциями и признаком, что нужно делать с этой коллекцией - добавлять, изменять, удалять. Такая модель легко тестируется и живет. Во-вторых, я так и не понял, как ты собираешься отделять в своей каше элементы, которые нужно добавить, изменить, удалять? Идея, конечно, заслуживает медали маразматика, но всё же. эээммм... Код: c# 1. 2. 3. 4.
перебор: Код: c# 1. 2. 3. 4. 5. 6. 7.
тибе как маленькому надо обиснять? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 18:24 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVostt, Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 18:26 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КНу поджойнит по первичному ключу да отделит. Не вижу проблемы. Я в том примере делаю примерно то же самое. Чтобы что-то поджойнить, нужно сначала это получить. А получает он это через нулловые грабли, о которых я писал выше. То есть он интерпритирует левую выборку с одним типом операции, правую выборку - с другим типом. Чисто подход отмороженного гавнокодера. Если добавится еще один или несколько типов операции, его архитектора складывается как карточный домик. Абсолютно нерасширяемое решение в виде гвоздей - нагадил и забыл. Вместо того, чтобы дополнить модель с коллекциями дополнительным признаком, он использует высер из каши в коллекции. hVosttМСУНу протестируй экстеншены. В чем проблема? Я не понимаю проблемы, которую ты высосал из пальца. Или ты предлагаешь минимум писать код и максимум его грузить откуда-то из нугета от пионеров, которые уже протестировали свои поделки? Я правильно понял? Нет, пилять, копипастить куски непонятного кода ХЗ откуда Ну так лучше копипастить очевидное с правильных ресурсов, чем цеплять на каждый чих какие-то левые гавносборки от прыщавых пионеров с нугета. Так? hVosttМСУДа, это не аналог left join, это и есть left join. Абсолютно верно. Так в чем твои страхи-то? Написать строчку кода - это проблема? это не есть left join, это синтаксически совершенно разные конструкции, хотя результат один и тот же. с точки зрения получения результата вопросов нет, покрайней мере left можно получить сравнительно малой кровью . но вот full outer без кастомных громоздких экстеншенов нечитабелен чуть менее, чем полностью, так что не ипай нам тут мозг своей хернёй Ну так если задача решается "малой кровью", зачем нужно что-то еще? hVosttМСУМеня-то не заклинило, я решаю проблемы по мере их поступления, а не несу очередную околопоносицу про какие-то жуткие страшилки о том, что нужно весь код сливать из нугета, потому что он уже протестирован. Потому что тестирование это для тебя нечто неведомое, давай не мажся, просто ты не умеешь пользоваться тестами (_не умеешь их готовить_). Но это не мои проблемы, а твои А что такого неведомого в этом тестировании, что нельзя познать простому смертному вроде меня? Или ты познал джао-да и не желаешься этим делиться? По-моему, даже любой студент отшельник в силах написать тесты. А вот осилить LINQ ты так и не можешь. hVosttМСУЭто называется каша и в голове и в коде. Бизнес модель должна явным образом отражать данные и операцию, которую нужно с ними проделать. Вместо вываливания кашей этого в full outer join, сделай себе объект с n коллекциями и признаком, что нужно делать с этой коллекцией - добавлять, изменять, удалять. Такая модель легко тестируется и живет. Во-вторых, я так и не понял, как ты собираешься отделять в своей каше элементы, которые нужно добавить, изменить, удалять? Идея, конечно, заслуживает медали маразматика, но всё же. эээммм... Код: c# 1. 2. 3. 4. 5. 6. 7.
тибе как маленькому надо обиснять? Тут только добавить и удалить. А где изменить? :) Дада, сейчас пойдут отмазы и вой... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2015, 19:59 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУАлексей КНу поджойнит по первичному ключу да отделит. Не вижу проблемы. Я в том примере делаю примерно то же самое. Чтобы что-то поджойнить, нужно сначала это получить. А получает он это через нулловые грабли, о которых я писал выше. То есть он интерпритирует левую выборку с одним типом операции, правую выборку - с другим типом. Чисто подход отмороженного гавнокодера. Если добавится еще один или несколько типов операции, его архитектора складывается как карточный домик. Абсолютно нерасширяемое решение в виде гвоздей - нагадил и забыл. Вместо того, чтобы дополнить модель с коллекциями дополнительным признаком, он использует высер из каши в коллекции.Будут специфичные типы операций - будет другое решение. Чё привязался? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2015, 06:41 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Алексей КБудут специфичные типы операций - будет другое решение. Чё привязался? Я другого ответа и не ожидал. Нужен будет балкон, подсунем новый фундамент ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2015, 08:59 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУНу так лучше копипастить очевидное с правильных ресурсов, чем цеплять на каждый чих какие-то левые гавносборки от прыщавых пионеров с нугета. Так? Просто у тебя не выработана привычка тестировать код. Чего ты мажешься? Видно, что пишешь по принципу «на авось». МСУНу так если задача решается "малой кровью", зачем нужно что-то еще? Относительно малой кровью пишется только простой left join, он читается хуже, но для опытного LINQ-щика всё-таки читается, однако это не касается full outer. Если бы подобные синтаксические конструкции сразу ввели бы в LINQ, мы бы сейчас об этом не спорили. Вопрос только в том, что помешало этому. МСУА что такого неведомого в этом тестировании, что нельзя познать простому смертному вроде меня? Или ты познал джао-да и не желаешься этим делиться? По-моему, даже любой студент отшельник в силах написать тесты. А вот осилить LINQ ты так и не можешь. Чё там осиливать? МСУТут только добавить и удалить. А где изменить? :) Дада, сейчас пойдут отмазы и вой... Какие отмазы? Изменение состава коллекции это и есть добавить/удалить. Что ты менять собрался в айдишниках? Набор битов? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2015, 10:58 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttПросто у тебя не выработана привычка тестировать код. На основе каких предпосылок сделано это искромётное утверждение? hVosttВидно, что пишешь по принципу «на авось». Не говори, особенно когда начинаешь выборки по нуллам из кросс джойна разгребать. МСУНу так если задача решается "малой кровью", зачем нужно что-то еще? hVosttОтносительно малой кровью пишется только простой left join, он читается хуже, но для опытного LINQ-щика всё-таки читается, однако это не касается full outer. Так я вообще за то, чтобы full outer join выбросить на помойку. Не нужен он в прикладной логике. Как сделать внятную модель с CRUD коллекциями, я написал выше. В данной задаче full outer join притянут ща уши и, более того, беспощадно вреден. hVosttЕсли бы подобные синтаксические конструкции сразу ввели бы в LINQ, мы бы сейчас об этом не спорили. Вопрос только в том, что помешало этому. Ну так давай все костыли мира воткнём в LINQ. И будет счастье. Так? hVosttЧё там осиливать? Ну хотя бы то, что по твоему утверждению "лямбда в LINQ компилируется в... Expression". Попал? hVosttКакие отмазы? Изменение состава коллекции это и есть добавить/удалить. Что ты менять собрался в айдишниках? Набор битов? Десятый раз повторить про кейс, когда нужно не только добавить и удалить, но и еще и изменить? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2015, 11:32 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУНа основе каких предпосылок сделано это искромётное утверждение? Потому что ты этого не делаешь. Сужу по кладезю твои «рецептов». Кроме ты заявляешь «чего там тестировать»... Короче не мажся. МСУНе говори, особенно когда начинаешь выборки по нуллам из кросс джойна разгребать. И? МСУТак я вообще за то, чтобы full outer join выбросить на помойку. Не нужен он в прикладной логике. Как сделать внятную модель с CRUD коллекциями, я написал выше. В данной задаче full outer join притянут ща уши и, более того, беспощадно вреден. Какие-то сплошные необоснованные нелепые утверждения. МСУНу так давай все костыли мира воткнём в LINQ. И будет счастье. Так? Какие ещё костыли? Давай может уберём костыль join? Вот ты бредишь... МСУНу хотя бы то, что по твоему утверждению "лямбда в LINQ компилируется в... Expression". Попал? автор Лямбда-выражение — это анонимная функция, которую можно использовать для создания таких типов как делегаты или деревья выражений. С помощью лямбда-выражений можно написать локальные функции, которые затем можно передавать в другие функции в качестве аргументов или возвращать из них в качестве значения. Лямбда-выражения особенно полезны для составления выражений запросов LINQ. МСУДесятый раз повторить про кейс, когда нужно не только добавить и удалить, но и еще и изменить? :) Изменяй, какие проблемы. Если слева (оригиальная коллекция) null — добавляешь, если справа (изменённая коллекция) null — удаляешь, если оба не null — обновляешь. Простецкий алгоритм. В чём проблемы? Если мы изменяем только состав Id, то изменение это и есть удаление/добавление, всё. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2015, 13:10 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttПотому что ты этого не делаешь. Сужу по кладезю твои «рецептов». Кроме ты заявляешь «чего там тестировать»... Короче не мажся. Твоя логика даже быка в ступор поставит. Тесты есть, но только в определенных местах модели. Тестировать 2 LINQ запроса у меня нет времени. Писать тесты ради тестов - удел маразматиков. hVosttМСУНе говори, особенно когда начинаешь выборки по нуллам из кросс джойна разгребать. И? Что и, плохо это и неправильно. hVosttМСУТак я вообще за то, чтобы full outer join выбросить на помойку. Не нужен он в прикладной логике. Как сделать внятную модель с CRUD коллекциями, я написал выше. В данной задаче full outer join притянут ща уши и, более того, беспощадно вреден. Какие-то сплошные необоснованные нелепые утверждения. Я же обосновал. hVosttМСУНу так давай все костыли мира воткнём в LINQ. И будет счастье. Так? Какие ещё костыли? Твои костыли, типа full outer join. hVosttДавай может уберём костыль join? Его сделали в коробке. Поэтому непонятно, как ты его уберешь. Да и как его убирать, без него не сделать ни left join, ни cross join, ни full join. Где профит? hVosttМСУНу хотя бы то, что по твоему утверждению "лямбда в LINQ компилируется в... Expression". Попал? автор Лямбда-выражение — это анонимная функция, которую можно использовать для создания таких типов как делегаты или деревья выражений. С помощью лямбда-выражений можно написать локальные функции, которые затем можно передавать в другие функции в качестве аргументов или возвращать из них в качестве значения. Лямбда-выражения особенно полезны для составления выражений запросов LINQ. Зачем ты занимаешься тупым копипастом из справки? Ты же ляпнул, что лямбда в LINQ компилируется в expression, забыл, что ли? hVosttМСУДесятый раз повторить про кейс, когда нужно не только добавить и удалить, но и еще и изменить? :) Изменяй, какие проблемы. Если слева (оригиальная коллекция) null — добавляешь, если справа (изменённая коллекция) null — удаляешь, если оба не null — обновляешь. Простецкий алгоритм. В чём проблемы? Если мы изменяем только состав Id, то изменение это и есть удаление/добавление, всё. Какие-то околопоносные грабли и местячковые договоренности. Почему не сделать внятную модель и отдавать IEnumerable<ModifiedObject<T>> с любыми типам операций? Код: c# 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2015, 14:16 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУТвоя логика даже быка в ступор поставит. Тесты есть, но только в определенных местах модели. Тестировать 2 LINQ запроса у меня нет времени. Писать тесты ради тестов - удел маразматиков. Чё ты несешь, в очередной раз спрашиваю? Тесты никогда не пишутся ради тестов. Есть определённая реализация, к ней пишется тест, проверяющий и доказывающий правильную работу. Если тестами покрыта только часть реализации, значит это хреновое покрытие, и толку от него мало. Что это ещё за глупый бред про «определённые места модели»? МСУЯ же обосновал. Где? В своих фантазиях? МСУТвои костыли, типа full outer join. full outer join это конкретная операция над множеством, практически всеми СУБД она поддерживается из коробки. LINQ это язык запросов, который на сегодняшний момент очень многого лишён. «Костыли» — это твои безумные необоснованные бредни. МСУЗачем ты занимаешься тупым копипастом из справки? Ты же ляпнул, что лямбда в LINQ компилируется в expression, забыл, что ли? «Лямбда-выражение — это анонимная функция, которую можно использовать для создания таких типов как делегаты или деревья выражений .» Ты читать умеешь? МСУКакие-то околопоносные грабли и местячковые договоренности. Почему не сделать внятную модель и отдавать IEnumerable<ModifiedObject<T>> с любыми типам операций? Речь идёт о реализации, а не о проектировании моделей. Тебя ещё и шизофренией подкосило? Я дал алгоритм конкретного решения, ты выкатил интерфейс класса, который ничего не делает. Жопу с пальцем сравниваешь. Ты не заболел случаем? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2015, 14:38 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttты выкатил интерфейс класса *определение класса а то сейчас ещё на эту тему мозг колупнёшь ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2015, 14:40 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttЧё ты несешь, в очередной раз спрашиваю? Тесты никогда не пишутся ради тестов. Есть определённая реализация, к ней пишется тест, проверяющий и доказывающий правильную работу. Если тестами покрыта только часть реализации, значит это хреновое покрытие, и толку от него мало. Что это ещё за глупый бред про «определённые места модели»? Да мне фиолетово, кто и как делает тесты. Одни их фанатично пишут даже больше, чем рабочего кода. Другие - меньше. Третьи вообще не пишут. У четвертых есть хорошие тестировщики. Пятые - неандертальцы вроде тебя. Определенные места модели - это определенные методы и классы модели. Неполное покрытие. hVosttМСУЯ же обосновал. Где? В своих фантазиях? Ты читаешь через задний проход, я это уже понял. Фантазии выражены тут 17240720 hVosttМСУТвои костыли, типа full outer join. full outer join это конкретная операция над множеством, практически всеми СУБД она поддерживается из коробки. LINQ это язык запросов, который на сегодняшний момент очень многого лишён. «Костыли» — это твои безумные необоснованные бредни. LINQ - это не СУБД. Что поддерживается в СУБД мало кого интересует. Костыли - это твои упоротые "оттестированные" решения. hVostt«Лямбда-выражение — это анонимная функция, которую можно использовать для создания таких типов как делегаты или деревья выражений .» Ты читать умеешь? И что ты этим хочешь сказать? Что лямбда в LINQ компилируется в expression? Ответь да или нет, не дергайся как нервозный червяк Ответь прямо на мой вопрос. hVosttМСУКакие-то околопоносные грабли и местячковые договоренности. Почему не сделать внятную модель и отдавать IEnumerable<ModifiedObject<T>> с любыми типам операций? Речь идёт о реализации, а не о проектировании моделей. Тебя ещё и шизофренией подкосило? Я дал алгоритм конкретного решения, ты выкатил интерфейс класса, который ничего не делает. Жопу с пальцем сравниваешь. Ты не заболел случаем? Ну так реализация у тебя - откровенный тухляк. Теперь я понимаю, почему ты много тестируешь код. Потому что он дурно пахнет ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2015, 16:44 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУДа мне фиолетово, кто и как делает тесты. Одни их фанатично пишут даже больше, чем рабочего кода. Другие - меньше. Третьи вообще не пишут. У четвертых есть хорошие тестировщики. Пятые - неандертальцы вроде тебя. Определенные места модели - это определенные методы и классы модели. Неполное покрытие. Что за неуместные разглагольствования? Растёкся тут жижей по кафелю, понимаешь. Есть билд-сервер, он подтягивает изменения из репы, прогоняет тесты и только если все 100% тесты отработали делает деплой или собирает билд. Это строго формализованный процесс. Нет никаких «определённых мест», кроме твоего больного воображения. По «определённым местам» можно только проверить как ты убрался в квартире: провёл пальцем по полке шкафа — есть пыль? Значит нехрена ты не убирался! Нет пыли — какой же ты молодчина! Так что не впаривай свой детский сад с «определёнными местами». МСУТы читаешь через задний проход, я это уже понял. Фантазии выражены тут 17240720 Извини, но это чушь. Если бы всё обосновывалось и доказывалось таким образом, ты бы сейчас не кодил, а на дереве сидел и гадил под себя поедая бананы. «Нулловые грабли» какие-то придумал. МСУLINQ - это не СУБД. Что поддерживается в СУБД мало кого интересует. Костыли - это твои упоротые "оттестированные" решения. Так утверждаешь, как будто я где-то говорил, что LINQ это СУБД. Я говорил про операции над множествами. Это не обязательно должна быть база данных и трансляция в SQL. Операция полное внешнее соединение (full outer join) по сути является объединением полного левого соединения и полного правого соединения. Если бы ты пошевелил мозгами, а не повилял задницей, то просто бы сказал почему в LINQ нет операторов left join, right join, full outer join. Имеется совершенно логичная причина (не надо даже лазить по MSDN и искать какие-то пруфы), почему в итоге приходиться обходиться говяным кривым решением используя DefaultIfEmpty -- потому что вот это как раз и есть костыль. МСУИ что ты этим хочешь сказать? Что лямбда в LINQ компилируется в expression? Ответь да или нет, не дергайся как нервозный червяк Ответь прямо на мой вопрос. Я хочу сказать, что лямбды используются для создания дерева выражений. Слово «компилируется» тебя смутило, да? Стоит не так выразиться, так ты мёртвого разбудишь, и с кокашками съешь МСУНу так реализация у тебя - откровенный тухляк. Теперь я понимаю, почему ты много тестируешь код. Потому что он дурно пахнет Я привёл пример реализации. Ты пока знатно попукал. Предложи другое решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2015, 01:22 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttЧто за неуместные разглагольствования? Растёкся тут жижей по кафелю, понимаешь. Есть билд-сервер, он подтягивает изменения из репы, прогоняет тесты и только если все 100% тесты отработали делает деплой или собирает билд. Это строго формализованный процесс. Нет никаких «определённых мест», кроме твоего больного воображения. А бывает нету билд сервера, он не подтягивает изменения из репы и не прогоняет тесты. Почему? Потому что не только билдом можно выполнить задачи - например как ты сделаешь ретракт и деплой wsp пакета из студии? Да и нужна ли автоматизация тут, вопрос. Собирать билды в песочнице для многих не нужно. Есть система контроля версий, есть user stories и tasks в TFS, есть контрольные точки. Всегда можно сделать билд по ним. Никаких проблем. hVosttПо «определённым местам» можно только проверить как ты убрался в квартире: провёл пальцем по полке шкафа — есть пыль? Значит нехрена ты не убирался! Нет пыли — какой же ты молодчина! Так что не впаривай свой детский сад с «определёнными местами». 100% убраться в квартире - похоже на гувернантку. Чисто твой подход, понимаю. До разработки ты еще не дорос Определенные места - это не 100% покрытие. Тебя это пугает? hVosttМСУТы читаешь через задний проход, я это уже понял. Фантазии выражены тут 17240720 Извини, но это чушь. Если бы всё обосновывалось и доказывалось таким образом, ты бы сейчас не кодил, а на дереве сидел и гадил под себя поедая бананы. «Нулловые грабли» какие-то придумал. Почему чушь? Ты забиваешь гвозди в выборку, отделяя мух от котлет через какие-то чудо нуллы. Архитектура канализационного уровня чё. hVosttМСУLINQ - это не СУБД. Что поддерживается в СУБД мало кого интересует. Костыли - это твои упоротые "оттестированные" решения. Так утверждаешь, как будто я где-то говорил, что LINQ это СУБД. Я говорил про операции над множествами. Это не обязательно должна быть база данных и трансляция в SQL. Операция полное внешнее соединение (full outer join) по сути является объединением полного левого соединения и полного правого соединения. Если бы ты пошевелил мозгами, а не повилял задницей, то просто бы сказал почему в LINQ нет операторов left join, right join, full outer join. Имеется совершенно логичная причина (не надо даже лазить по MSDN и искать какие-то пруфы), почему в итоге приходиться обходиться говяным кривым решением используя DefaultIfEmpty -- потому что вот это как раз и есть костыль. Я вообще не понимаю, почему ты LINQ постоянно пытаешься стыковать с функционалом СУБД. Мол в SQL есть же такие функции, почему их нет в LINQ. Ну ведь бред же. Почему DefaultIfEmpty - это кривое решение? hVosttМСУИ что ты этим хочешь сказать? Что лямбда в LINQ компилируется в expression? Ответь да или нет, не дергайся как нервозный червяк Ответь прямо на мой вопрос. Я хочу сказать, что лямбды используются для создания дерева выражений. Слово «компилируется» тебя смутило, да? Стоит не так выразиться, так ты мёртвого разбудишь, и с кокашками съешь Ну хоть сейчас ты начал аккуратно следить за своим пустопорожним языком, осторожничаешь? hVosttМСУНу так реализация у тебя - откровенный тухляк. Теперь я понимаю, почему ты много тестируешь код. Потому что он дурно пахнет Я привёл пример реализации. Ты пока знатно попукал. Предложи другое решение. Ты привёл какашку. А теперь, обосравшись, с умным выражением лица пытаешься удержаться в канализационных стоках на плаву. Решение уже было 100500 раз предложено. Перечитай топик. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2015, 14:42 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУА бывает нету билд сервера, он не подтягивает изменения из репы и не прогоняет тесты. Почему? Потому что не только билдом можно выполнить задачи - например как ты сделаешь ретракт и деплой wsp пакета из студии? Да и нужна ли автоматизация тут, вопрос. Собирать билды в песочнице для многих не нужно. Есть система контроля версий, есть user stories и tasks в TFS, есть контрольные точки. Всегда можно сделать билд по ним. Никаких проблем. Да, в лабораторных работах студентов не нужны никакие билды. А студия прекрасно работает с тестами. Сделал изменения, прогнал тесты — значит всё ок. МСУПочему чушь? Ты забиваешь гвозди в выборку, отделяя мух от котлет через какие-то чудо нуллы. Архитектура канализационного уровня чё. Какие претензии к нуллам не пойму? И при чём архитектура? Какая ещё нафиг архитектура, о ней вообще речь не шла. МСУЯ вообще не понимаю, почему ты LINQ постоянно пытаешься стыковать с функционалом СУБД. Мол в SQL есть же такие функции, почему их нет в LINQ. Ну ведь бред же. Почему DefaultIfEmpty - это кривое решение? Это костыль, потому что полное левое соединение невозможно выполнить на типах значений , и здесь тебе даже DefaultIfEmpty мало чем поможет, если только значение по умолчанию тебя устроит в качестве отсутствия значения. Если бы результатом выполнения LINQ была бы не типизированная коллекция (Object), то DefaultIfEmpty был бы не нужен, и можно было бы ввести left/right/full join. Стыковать LINQ с функционалом СУБД -- вполне логичная задача, с которой очень многие и очень часто сталкиваются. Будешь отрицать? Или будешь чесать про какую-то меташизику? МСУНу хоть сейчас ты начал аккуратно следить за своим пустопорожним языком, осторожничаешь? Слопал значит? Ну ок МСУТы привёл какашку. А теперь, обосравшись, с умным выражением лица пытаешься удержаться в канализационных стоках на плаву. Решение уже было 100500 раз предложено. Перечитай топик. Мне не надо ничего перечитывать я помню что ты предложил. Ты предложил изменить условия задачи, поменять задачу, а не решать её. Ввести какие-то уродские типы операции, вместо того, чтобы решить задачу. Ничего особенного в ней нет, встречается часто, решается и никаких проблем никто кроме тебя не испытывает. Никто не воняет про какую-то не такую архитектуру, как будто на всём белом свете у каждой задачи имеется только одно единственно правильное решение — так думать это удел недалёких шизиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2015, 16:13 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttДа, в лабораторных работах студентов не нужны никакие билды. А студия прекрасно работает с тестами. Сделал изменения, прогнал тесты — значит всё ок. Да, если ларёк по продаже арбузов решил блеснуть умением настраивать серверные билды, то почет ему и уважение. hVosttКакие претензии к нуллам не пойму? И при чём архитектура? Какая ещё нафиг архитектура, о ней вообще речь не шла. Модель должна прозрачно отражать своё предназначение, а не засирать мозг нуллами и прочей магической отрибутикой. hVosttЭто костыль, потому что полное левое соединение невозможно выполнить на типах значений , и здесь тебе даже DefaultIfEmpty мало чем поможет, если только значение по умолчанию тебя устроит в качестве отсутствия значения. Если бы результатом выполнения LINQ была бы не типизированная коллекция (Object), то DefaultIfEmpty был бы не нужен, и можно было бы ввести left/right/full join. Стыковать LINQ с функционалом СУБД -- вполне логичная задача, с которой очень многие и очень часто сталкиваются. Будешь отрицать? Или будешь чесать про какую-то меташизику? Так левое соединение можно даже через GroupJoin выразить, чего ты докопался до DefaultIfEmpty? Стыковать LINQ не нужно, он не СУБД. hVosttМСУНу хоть сейчас ты начал аккуратно следить за своим пустопорожним языком, осторожничаешь? Слопал значит? Ну ок Слопал что? Твой позапрошлогодний высер про "компиляцию" в expression? hVosttМне не надо ничего перечитывать я помню что ты предложил. Ты предложил изменить условия задачи, поменять задачу, а не решать её. Ввести какие-то уродские типы операции, вместо того, чтобы решить задачу. Ничего особенного в ней нет, встречается часто, решается и никаких проблем никто кроме тебя не испытывает. Никто не воняет про какую-то не такую архитектуру, как будто на всём белом свете у каждой задачи имеется только одно единственно правильное решение — так думать это удел недалёких шизиков. Условие задачи не меняется, меняется форма представления результата. Программист вправе выбирать эту форму сам. Я выбрал обычный типизированный подход, который 100% отражает предметику. Ты выбрал способ молодого неофита с неспособностью мыслить. С таким же успехом ты мог всё закодировать в base64, а потом парсить. Типичный подход обезумевших обезьянок. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2015, 16:27 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУДа, если ларёк по продаже арбузов решил блеснуть умением настраивать серверные билды, то почет ему и уважение. С учётом того, что ты там про «особенные места» несёшь, ты походу дальше ларька с арбузами и не продвинулся. Иди лабы помогай студентам писать, и мозги не клюй. МСУМодель должна прозрачно отражать своё предназначение, а не засирать мозг нуллами и прочей магической отрибутикой. Шта? Прозрачно отражать? Ахахаххаахх... .аааа... уморил 0))) Ты чё там употребляешь? Нормально говорить можешь? МСУТак левое соединение можно даже через GroupJoin выразить, чего ты докопался до DefaultIfEmpty? Стыковать LINQ не нужно, он не СУБД. Да что ты? Ну-ка покеж полное левое соединение на GroupJoin без DefaultIfEmpty. А то смотрю ты уже чешешь что-то попало не разбирая дороги Я говорил про множества, а LINQ это язык запросов. СУБД это не язык запросов, так что капитан очевидность крепко тебе жмёт руку — ты знатно из себя идиота строишь )) Почти поверил. МСУУсловие задачи не меняется, меняется форма представления результата. Программист вправе выбирать эту форму сам. Я выбрал обычный типизированный подход, который 100% отражает предметику. Ты выбрал способ молодого неофита с неспособностью мыслить. С таким же успехом ты мог всё закодировать в base64, а потом парсить. Типичный подход обезумевших обезьянок. Ну и нах мне решение задачи, которую ты сам же себе выдумал? Я вообще-то предоставил конкретные данные, которые уходят на клиента, и данные, которые в ответ приходят. Ты же начинаешь сношать мозг: модели понимаешь не те, архитектура понимаешь не та, подход понимаешь не тот. Это наверное у тебя руки-крюки, раз такая простецкая задачка вызывает поток неосознанной фантазии Решение я дал вполне конкретное, оно работает, и претензий ни у кого к такому решению никогда не было. Оно прекрасно тестируется, никакого оверхеда (с какими-то галимыми костыльными типами операции, бред вообще), оно универсально, и оно отлично работает. Каких-то очевидных проблем с этим решением я не вижу, а ты их не указал. Понимаешь твоё «способ неофита» — это НИ О ЧЁМ. Это квакание обезьянки. В цирке можешь людей посмешить. Или всё-таки можешь обосновать? Давай. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2015, 17:06 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУСлопал что? Твой позапрошлогодний высер про "компиляцию" в expression? ... — Молодой человек, уступи ветерану место, я в 45-ом ногу потерял. — Чё ты гонишь, старик!? Ехал я в 45-ом, не было там твоей ноги! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2015, 17:11 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttМСУДа, если ларёк по продаже арбузов решил блеснуть умением настраивать серверные билды, то почет ему и уважение. С учётом того, что ты там про «особенные места» несёшь, ты походу дальше ларька с арбузами и не продвинулся. Иди лабы помогай студентам писать, и мозги не клюй. Чем тебя испугали обособленные места? Или ты тестируешь всегда 100%, тестер ты наш сизокрылый? hVosttМСУМодель должна прозрачно отражать своё предназначение, а не засирать мозг нуллами и прочей магической отрибутикой. Шта? Прозрачно отражать? Ахахаххаахх... .аааа... уморил 0))) Ты чё там употребляешь? Нормально говорить можешь? Какой-то невнятный высер. Сформулируй еще раз мысль. hVosttМСУТак левое соединение можно даже через GroupJoin выразить, чего ты докопался до DefaultIfEmpty? Стыковать LINQ не нужно, он не СУБД. Да что ты? Ну-ка покеж полное левое соединение на GroupJoin без DefaultIfEmpty. А то смотрю ты уже чешешь что-то попало не разбирая дороги Что такое "полное" левое соединение? Решил на нобелевский лауреат пойти? Вот тебе обычный left outer join, выраженный через GroupJoin без DefaultIfEmpty. Код: c# 1.
hVosttЯ говорил про множества, а LINQ это язык запросов. СУБД это не язык запросов, так что капитан очевидность крепко тебе жмёт руку — ты знатно из себя идиота строишь )) Почти поверил. Тебе рано еще про множества, маленький. Пока LINQ не осилишь, тебя к множествам даже на пушечный выстрел нельзя подпускать hVosttНу и нах мне решение задачи, которую ты сам же себе выдумал? Я вообще-то предоставил конкретные данные, которые уходят на клиента, и данные, которые в ответ приходят. Ты же начинаешь сношать мозг: модели понимаешь не те, архитектура понимаешь не та, подход понимаешь не тот. Это наверное у тебя руки-крюки, раз такая простецкая задачка вызывает поток неосознанной фантазии Еще раз подчеркиваю, я выдумал не задачу, а конкретное решение. Обычно, это работа программистов, если ты не в курсе. Хотя у кого я спрашиваю, иди тестируй лучше hVosttМСУСлопал что? Твой позапрошлогодний высер про "компиляцию" в expression? ... — Молодой человек, уступи ветерану место, я в 45-ом ногу потерял. — Чё ты гонишь, старик!? Ехал я в 45-ом, не было там твоей ноги! Папа накричал на маму. Мама накричала на сына. Сын накричал на кошку. Кошка насрала всем в тапочки. Мораль: бесправный - не значит безопасный! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2015, 17:27 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУЧем тебя испугали обособленные места? Или ты тестируешь всегда 100%, тестер ты наш сизокрылый? Да, конечно. Какой тогда смысл в тестировании? Особенно это важно в командной разработке. В своих наколенных поделках конечно можно и не тестировать. МСУВот тебе обычный left outer join, выраженный через GroupJoin без DefaultIfEmpty. Код: c# 1.
Это тоже самое, что и DefaultIfEmpty, я то думал... МСУЕще раз подчеркиваю, я выдумал не задачу, а конкретное решение. Обычно, это работа программистов, если ты не в курсе. Хотя у кого я спрашиваю, иди тестируй лучше Ты придуриваешься? Там нет в задаче твоих половых признаков. Долго будешь тупить? Работа программиста — решать поставленную задачу, а не строить из себя идиота, а ты уже в который раз с упёртостью достойной всяческих похвал делаешь морду дурачком. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2015, 17:37 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttс упёртостью достойной всяческих похвал"лучшего применения" ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2015, 17:40 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУТебе рано еще про множества, маленький. Пока LINQ не осилишь, тебя к множествам даже на пушечный выстрел нельзя подпускать Ты уж извини, но кому кому, а LINQ тебе надо ещё учить и учить. Ты только что выше лажанул, потому что твоё решение с GroupJoin не является левым соединением, как ты обещал. Всё потому, что ты тупо оказывается даже не знаешь что такое множества и как с ними работать. Так что иди учи матчасть. Левое соединение он с GroupJoin делает... Посмешил ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2015, 17:44 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttМСУЧем тебя испугали обособленные места? Или ты тестируешь всегда 100%, тестер ты наш сизокрылый? Да, конечно. Какой тогда смысл в тестировании? Особенно это важно в командной разработке. В своих наколенных поделках конечно можно и не тестировать. Везде есть своя золотая середина, главное без фанатизма. Это к вопросу "тестирования" пары строк кода на LINQ. hVosttМСУВот тебе обычный left outer join, выраженный через GroupJoin без DefaultIfEmpty. Код: c# 1.
Это тоже самое, что и DefaultIfEmpty, я то думал... Это не тоже самое, что DefaultIfEmpty. Во-вторых, можно выразить и через GroupJoin + SelectMany, вот там нужно использовать DefaultIfEmpty. Как видишь, варианты есть. Учи LINQ, маленький. hVosttМСУЕще раз подчеркиваю, я выдумал не задачу, а конкретное решение. Обычно, это работа программистов, если ты не в курсе. Хотя у кого я спрашиваю, иди тестируй лучше Ты придуриваешься? Там нет в задаче твоих половых признаков. Долго будешь тупить? При придуряешься? Десятый раз повторяю, не в моей задаче, а моей реализации. Не путай теплое с мягким. Задача одна, решений много. Твоё решение - пустопорожнее гавно. hVosttРабота программиста — решать поставленную задачу, а не строить из себя идиота, а ты уже в который раз с упёртостью достойной всяческих похвал делаешь морду дурачком. Так вот ты решаешь задачу через задний проход. Неужели непонятно? hVosttМСУТебе рано еще про множества, маленький. Пока LINQ не осилишь, тебя к множествам даже на пушечный выстрел нельзя подпускать Ты уж извини, но кому кому, а LINQ тебе надо ещё учить и учить. Ты только что выше лажанул, потому что твоё решение с GroupJoin не является левым соединением, как ты обещал. Всё потому, что ты тупо оказывается даже не знаешь что такое множества и как с ними работать. Так что иди учи матчасть. Левое соединение он с GroupJoin делает... Посмешил Ну ты даже с GroupJoin обделался, назвав его тем же самым, что и DefaultIfEmpty. Такое может ляпнуть только пришибленный ушлепок ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2015, 18:07 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Хвостик, так ты не ответил. Что такое "полное" левое соединение? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2015, 18:08 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУВезде есть своя золотая середина, главное без фанатизма. Это к вопросу "тестирования" пары строк кода на LINQ. Какая разница столько там строк? МСУТак вот ты решаешь задачу через задний проход. Неужели непонятно? Представь себе, не понятно. Почему ты так решил? У тебя похоже большие проблемы с объяснением своих же слов, поэтому ты моментально опускаешь до уровня проходов и личностных оценок. МСУНу ты даже с GroupJoin обделался, назвав его тем же самым, что и DefaultIfEmpty. Такое может ляпнуть только пришибленный ушлепок Для частного случая это тоже самое. Для общего случая твоё решение с GroupJoin не является аналогом left join, и результат их работы может отличаться. Но тебе-то что, ты можешь жопу назвать аналогом пальца, тебе не впервой ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 12:54 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУХвостик, так ты не ответил. Что такое "полное" левое соединение? Когда ответить по существу нечего, МСУ начинает придираться к словам. Что же такое, оу ты сказал «полное»? Такого в книжках нетю, ааахахахахах... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 12:56 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
А почему вы, ребята, называете "LINQ query expressions" сахаром? Выходит будто fluent expressions не являются сахаром над query expressions, ведь fluent как раз и есть сахар над query же, бо query появился раньше fluent и fluent это суть тот же query написанный в функциональном стиле! ЗЫ. Я смотрю дело Севы и МСУ живёт ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 13:33 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
enigmaticА почему вы, ребята, называете "LINQ query expressions" сахаром?Потому fluent находится почти полностью в рамках классического синтаксиса С#/VB, а query expressions имеют sql-синтаксис, вкоряченный в С#/VB. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 13:38 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyПотому fluent находится почти полностью в рамках классического синтаксиса С#/VB, а query expressions имеют sql-синтаксис, вкоряченный в С#/VB.Ну мне казалось, что query синтаксис появился раньше fluent, поэтому логично предположить, что fluent является надстройкой над query, и, согласно определению "синтаксический сахар", данному педивикией, где сахаром называется то, что является дополнением/надстройкой над чем-нибудь, сахаром является как раз fluent. ЗЫ. Ты в курсе, что у тебя аватарка с косичками? Так и должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 13:50 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Antonariyfluent находится почти полностью в рамках классического синтаксисаиз любопытства - в чем заключается то малое "не почти"? enigmaticЗЫ. Ты в курсе, что у тебя аватарка с косичками? Так и должно быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 13:55 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProИМХО - ушанка. Балалайка, водка и медведь немножко за кадром А, ну ладно тогда, а то я давно не заходил и начал опасаться за завсегдатаев ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:15 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.Proиз любопытства - в чем заключается то малое "не почти"?Насчет сидиеза не знаю, а в вб вот это, например: Код: vbnet 1.
Или может это лишь я такими конструкциями не пользовался за рамками LINQ. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:31 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
enigmaticShocker.ProИМХО - ушанка. Балалайка, водка и медведь немножко за кадром А, ну ладно тогда, а то я давно не заходил и начал опасаться за завсегдатаев Блин, а ведь была мысль насчет медведя за плечом Но он туда не влезет. Добавлю хоть погоны, как время найду. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:33 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
enigmaticНу мне казалось, что query синтаксис появился раньше fluent, поэтому логично предположить, что fluent является надстройкой над query Когда кажется - креститься надо. 17217136 - и обращаем внимание на вызов Код: c# 1. 2.
который как бы и есть вызов того самого "флюентного" метода. Которые все живут в System.Linq.Enumerable . ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:34 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyНасчет сидиеза не знаю, а в вб вот это, например: Код: vbnet 1.
Ну это передача делегата Func<,> ведь (не знаю, как в VB называются делегаты - ссылки на методы). В принципе, это в некотором смысле другой сахар - создание на ходу анонимного делегата. В шарпе будет выглядеть так: Код: c# 1.
но это не имеет отношения непосредственно к линку. AntonariyИли может это лишь я такими конструкциями не пользовался за рамками LINQ.Ну и зря )) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:41 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProНу и зря ))А зачем?) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:45 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, Всё верно, фигню написал. И fluent, и query одновременно появились в .Net 3.5, а query использует методы fluent'а, т.е. query -- сахар над fluent. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 14:49 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyShocker.ProНу и зря ))А зачем?)в чем вопрос: Зачем использовать делегаты в принципе? или Зачем использовать inline объявление анонимного делегата (вместо ссылки на явно объявленный метод)? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:08 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyпропущено... А зачем?)в чем вопрос: Зачем использовать делегаты в принципе? или Зачем использовать inline объявление анонимного делегата (вместо ссылки на явно объявленный метод)?В смысле пример приведи из своей практики. Какая была задача и как ее решил. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:11 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
enigmaticНу мне казалось, что query синтаксис появился раньше fluent, Так и есть . ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:25 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyВ смысле пример приведи из своей практики. Какая была задача и как ее решил. Вчерашний пример - из класса A создаю экземпляр класса Б, в который нужно отдать некий ID. Проблема в том, что с одной стороны этот ID классу Б понадобится не сразу (только при рендеринге), с другой стороны, ID еще и не готов, он будет сгенерен или изменен в процессе работы класса А (но заведомо до того, как он понадобится Б, просто по определению) Тогда я беру и объявляю конструктор Б не Б(int ID), а Б(Action<int> getID) и создаю экземпляр: new Б(() => this.MyID) И тогда, когда классу Б приспичит, он сделает var id=getID() и получит актуальный ID А вообще, в самой платформе .NET миллион методов и классов, принимающих на вход Func<> или Action<> - каждый из них - ответ на твой вопрос )) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:34 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Тогда я беру и объявляю конструктор Б не Б(int ID), а Б(Action<int> getID) и создаю экземпляр: new Б(() => this.MyID) И тогда, когда классу Б приспичит, он сделает var id=getID() и получит актуальный IDПочему не Б(A obj); new Б(this); var id = obj.MyID? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:43 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyТогда я беру и объявляю конструктор Б не Б(int ID), а Б(Action<int> getID) и создаю экземпляр: new Б(() => this.MyID) И тогда, когда классу Б приспичит, он сделает var id=getID() и получит актуальный IDПочему не Б(A obj); new Б(this); var id = obj.MyID? Насколько я понял, речь идет об отложенном считывании Id ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:48 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Arm79Antonariyпропущено... Почему не Б(A obj); new Б(this); var id = obj.MyID? Насколько я понял, речь идет об отложенном считывании Idтак тут тоже отложенное. в класс б передается ссылка на а, и б дергает его, когда хочет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:53 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyТогда я беру и объявляю конструктор Б не Б(int ID), а Б(Action<int> getID) и создаю экземпляр: new Б(() => this.MyID) И тогда, когда классу Б приспичит, он сделает var id=getID() и получит актуальный IDПочему не Б(A obj); new Б(this); var id = obj.MyID?Ужасное решение, увеличивающее связность кода. Зачем вводить зависимость класса Б от класса А или от какого-го либо интерфейса? Тем более, что класс Б - библиотечный. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:55 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Поэтому вопрос "нафига тут нужны делегаты" остается. А еще лучше такой: в каких случаях делегаты предпочтительней классики? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 15:56 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProУжасное решение, увеличивающее связность кода.Погоня за излишней развязанностью всегда во благо и красоты для? Shocker.ProЗачем вводить зависимость класса Б от класса А или от какого-го либо интерфейса? А почему нет? Условия задачи сформулированы так, что строго исключают зависимость Б от А? Shocker.ProТем более, что класс Б - библиотечный.Не убедительно. Библиотека библиотеке рознь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:04 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Antonariyи красоты для? да ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:05 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Antonariy Зачем вводить зависимость класса Б от класса А или от какого-го либо интерфейса?А действительно. А уже зависит от Б, путь заодно реализует интерфейс из Б, а передается в конструктор как Object. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:07 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyПогоня за излишней развязанностью всегда во благо и красоты для?уменьшение связности улучшает обслуживаемость, модифицируемость, тестируемость кода. По поводу "излишней" - по моему опыту - связанность должна быть всегда несколько меньше, чем требует объективный взгляд на проблему сегодня, ибо потом это резко создает ненужные проблемы при любой попытке развития проекта. AntonariyУсловия задачи сформулированы так, что строго исключают зависимость Б от А?В данном случае - да. Ибо класс библиотечный. Даже если это было бы не так в данной задаче - все равно нужно обойтись без создания зависимости класса Б от класса А, потому что завтра класс Б захочется куда-то унести или воспользоваться им в другом месте. ТЕМ БОЛЕЕ, что написание в данном случае несвязного кода не усложняет код и не прибавляет букв. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:12 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyА действительно. А уже зависит от Б, путь заодно реализует интерфейс из Б, а передается в конструктор как Object.нахера? Уже есть универсальный "интерфейс" Action<int>, нафига тут лишнюю сущность вводить? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:13 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyА действительно. А уже зависит от Б, путь заодно реализует интерфейс из Б, а передается в конструктор как Object.нахера? Уже есть универсальный "интерфейс" Action<int>, нафига тут лишнюю сущность вводить?А если требуется больше одного метода? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:19 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyПогоня за излишней развязанностью всегда во благо и красоты для?уменьшение связности улучшает обслуживаемость, модифицируемость, тестируемость кода. По поводу "излишней" - по моему опыту - связанность должна быть всегда несколько меньше, чем требует объективный взгляд на проблему сегодня, ибо потом это резко создает ненужные проблемы при любой попытке развития проекта. AntonariyУсловия задачи сформулированы так, что строго исключают зависимость Б от А?В данном случае - да. Ибо класс библиотечный. Даже если это было бы не так в данной задаче - все равно нужно обойтись без создания зависимости класса Б от класса А, потому что завтра класс Б захочется куда-то унести или воспользоваться им в другом месте. ТЕМ БОЛЕЕ, что написание в данном случае несвязного кода не усложняет код и не прибавляет букв.Опять сферические рассуждения. Какая задача конкретно потребовала именно такого решения? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:21 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyА если требуется больше одного метода?а в чем проблема? будет несколько параметров. Впрочем, возможно тут потребуется поменять подход, надо смотреть конкретную задачу. AntonariyОпять сферические рассуждения. Какая задача конкретно потребовала именно такого решения?Это рассуждения, основанные как на теории, так и на опыте. А опыт показывает - чем автономнее классы, тем масштабируемее система. А задача конкретно была изложена. Добавляем условие - класс Б - библиотечный. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:28 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.Pro А задача конкретно была изложена. Добавляем условие - класс Б - библиотечный.Вот это конкретно: 17222947 , и это конкретно: 17252250 , а ты написал сферическую фигню про а и бе сидели на трубе. Shocker.Pro Впрочем, возможно тут потребуется поменять подход, надо смотреть конкретную задачу.Об этом я и говорю. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:32 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyShocker.ProА задача конкретно была изложена. Добавляем условие - класс Б - библиотечный.Вот это конкретно: 17222947 , и это конкретно: 17252250 , а ты написал сферическую фигню про а и бе сидели на трубе.Ты под МСУ-то не коси Хочешь задачу в терминах моего проекта? Да тут на лист убористого текста - бессмысленно. Уменьшение зависимостей, увеличение автономности класса - это благо, а не зло (не говорим про "любой ценой", говорим про "адекватными усилиями", а моем случае - нулевыми усилиями). Если ты тут не согласен, я спорить не буду, это просто биться головой об стену. Хочешь еще пример - Linq тебе плохой пример? Забудем даже об отложенном выполнении и о деревьях выражений. Если бы не было Linq, имея в арсенале методы расширения, обобщенные типы и делегаты - многие из его методов стоило бы написать самому для себя - это невероятно удобная вещь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 16:47 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProУменьшение зависимостей, увеличение автономности класса - это благо, а не зло (не говорим про "любой ценой", говорим про "адекватными усилиями", а моем случае - нулевыми усилиями). Если ты тут не согласен, я спорить не буду, это просто биться головой об стену.Не надо, мне знакомы детали этой религии :) Shocker.ProХочешь еще пример - Linq тебе плохой пример?Нормальный пример, но ни ты не являешься разработчиком Linq'а, ни я. Я осознаю, какие задачи решают делегаты в линке, моим задачам они перпендикулярны, поэтому я ищу другие задачи, похожие на мои, с целью детектирования мест, имеющих профит от решения с использованием делегатов. Поэтому сферические А и Б не канают. Попробую по-другому, без углубления в дебри терминологии твоего проекта: что в общем и целом у тебя делает максимально отвязная библиотека? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 17:11 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyПопробую по-другому, без углубления в дебри терминологии твоего проекта: что в общем и целом у тебя делает максимально отвязная библиотека?привносит некоторые элементы вебформс в MVC я тоже знаком с этим методом - щас ты начнешь копать вглубь, и если не подвергнешь жестокой критике само существование класса Б, то как минимум предложишь другой вариант решения, имеющий право на существование. Поэтому я очень не хочу углубляться в детали. Класс Б - вспомогательный, основная его работа идет при рендеринге частичного представления. Библиотека находится в отдельной сборке и, разумеется, не имеет зависимости от пользовательского проекта. Класс А - некий объект пользовательского проекта, который будет потом отрендерен. На момент создания класса А, данные в него из БД еще не загружены, поэтому я не могу их отдать в класс Б. Экземпляр Б я создаю в конструкторе класса А. Я могу создать класс Б позже, перед рендером (это один из вариантов обхода проблемы), но мне УДОБНЕЕ создать все нужные объекты в конструкторе и забыть про него. Тем более, что это не стоит мне никаких усилий (перегруженный конструктор класса Б может принять как int, так и Action<int>) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 17:39 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.Pro я тоже знаком с этим методом - щас ты начнешь копать вглубь, и если не подвергнешь жестокой критике само существование класса Б, то как минимум предложишь другой вариант решения, имеющий право на существование.2 раза нет :) Зря ты меня с мусей сравниваешь. Я хочу собрать набор случаев, когда использование делегатов в архитектуре приложений имеет объективно и формально обоснованное предпочтение перед другими методами. Пока что есть два примера - linq и твоя библиотека. linq формально обоснован, его случай пронумерован и зопейсан в книжечку, такие задачи в обозримом будущем передо мной не стоят. Рендеринг веб-контента мне более близок, но твои обоснования решения с делегатами субъективны:Shocker.Pro но мне УДОБНЕЕ создать все нужные объекты в конструкторе и забыть про него. Тем более, что это не стоит мне никаких усилийЛичное удобство, а не требования задачи, как в том же linq. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 18:46 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
AntonariyЛичное удобство, а не требования задачи, как в том же linq.уже заранее заготовил аргумент, что использование Linq для обработки массива можно тоже объявить личным удобством, а не требованием задачи, ведь есть же foreach. А ты и сам справился. Ок, я понял, ты, видимо, используешь foreach. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 19:20 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Shocker.ProAntonariyЛичное удобство, а не требования задачи, как в том же linq.уже заранее заготовил аргумент, что использование Linq для обработки массива можно тоже объявить личным удобствомага, только вопрос был не про линк, а про делегаты. Ну нет у тебя объективных причин для использования делегатов, и ладно, не буду же я тебя переубеждать, что это не удобно, сам этим не пользуясь. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2015, 19:43 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
по мотивам последних постингов вспомнилось: как-то раз видел дискуссию дельфийцев, где на полном серьезе обсуждалась нужность генериков - причем одна из сторон на полном серьезе аргументировала их ненужность. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2015, 09:34 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttМСУВезде есть своя золотая середина, главное без фанатизма. Это к вопросу "тестирования" пары строк кода на LINQ. Какая разница столько там строк? Чем больше пишешь, тем больше вероятность ошибиться. Нет? Хотя я понимаю твоё дикое желание оттестировать Код: c# 1.
hVosttМСУТак вот ты решаешь задачу через задний проход. Неужели непонятно? Представь себе, не понятно. Почему ты так решил? У тебя похоже большие проблемы с объяснением своих же слов, поэтому ты моментально опускаешь до уровня проходов и личностных оценок. Не у меня проблемы с объяснением, у тебя проблемы с пониманием. Не переваливай со своей больной головы на мою здоровую. hVosttМСУНу ты даже с GroupJoin обделался, назвав его тем же самым, что и DefaultIfEmpty. Такое может ляпнуть только пришибленный ушлепок Для частного случая это тоже самое. Для общего случая твоё решение с GroupJoin не является аналогом left join, и результат их работы может отличаться. Но тебе-то что, ты можешь жопу назвать аналогом пальца, тебе не впервой Что есть частный случай? hVosttМСУХвостик, так ты не ответил. Что такое "полное" левое соединение? Когда ответить по существу нечего, МСУ начинает придираться к словам. Что же такое, оу ты сказал «полное»? Такого в книжках нетю, ааахахахахах... Твою глупостью и несостоятельность видно за версту. Но я тебя не виню. Просто не нужно лезть туда, где опыта ноль. Только и всего. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2015, 16:07 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУЧем больше пишешь, тем больше вероятность ошибиться. Нет? Хотя я понимаю твоё дикое желание оттестировать Код: c# 1.
У меня только один вопрос, ты что, дурак? Если ты тупо не понимаешь зачем нужны тесты, для чего они используются и почему так важно полное покрытие тестами, то я тебя остолопа учить не собираюсь. Если бы ты хоть немного был в теме, такие дебильные тупые примеры не приводил бы, потому что строки кода никогда не тестируются. МСУНе у меня проблемы с объяснением, у тебя проблемы с пониманием. Не переваливай со своей больной головы на мою здоровую. Пониманием чего? Ты заявляешь «вот ты решаешь задачу через задний проход» — я тебя спрашиваю «почему?». А ты в ответ говоришь у меня проблемы с пониманием. Мозги давай включай. Если ты что-то там вякаешь, изволь отвечать за свои слова, или просто давай примем за аксиому, что ты балаболка обыкновенная. Какие проблемы-то? МСУЧто есть частный случай? Частный случай это такие два множества, для которых твоё решение с GroupJoin работает аналогично решению с join + DefaultIfEmpty, т.е. как внешнее левое соединение. Но это не верно для любых двух множеств. Твоё решение с GroupJoin не является решением соединения outer left join для всех случаев. Если бы ты включал мозг хоть иногда, то понял бы этого и не нёс бы чушь. МСУТвою глупостью и несостоятельность видно за версту. Но я тебя не виню. Просто не нужно лезть туда, где опыта ноль. Только и всего. Бла-бла-бла и 0 по сути. МСУ, ты в своём репертуаре. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 01:00 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Сон Веры Павловны по мотивам последних постингов вспомнилось: как-то раз видел дискуссию дельфийцев, где на полном серьезе обсуждалась нужность генериков - причем одна из сторон на полном серьезе аргументировала их ненужность. Это называется священные войны ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 01:02 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
МСУЯ не знаю, чем ты там болеешь, но публичные методы, интерфейсы, экстеншены - это и есть код. Прикинь Да что ты? Как ты моментально переобуваешься, любая женщина тебе только позавидует. Вот только недавно ты трепался о каких-то моделях, типизации и прочем, а сейчас это оказывается просто серая масса кода. С такой риторикой можешь пойти и повозбуждать бомжей возле своего подъезда, мне такой уровень дискуссии неинтересен, ты откровенно тупишь. МСУТипизация притом здесь, что не нужно ковыряться в коллекции и делить её по null условию на 2 коллекции. Есть экземпляр класса, который содержит коллекцию для такой-то операции, коллекцию для другой операции, для третьей операции. Тебе нужно добавить элементы, обращаешься к экземпляру по требуемой операции и получаешь свою конкретную коллекцию. Это и есть типизация, дуралейка. Не гони, это всё просто строки кода. Какая ещё нах типизация? Упал чтоле? МСУНе совсем понимаю, о каких частных случаях идет речь. Приведи пример, а то твои искрометные сопли про левые полные соединения больше нет желания ковырять. Мозги включи, если они ещё способны у тебя включаться. Почитай чем отличается группировка от соединения в принципе для начала. А то чешешь тут про знания LINQ, а сам даже азов тупо не знаешь. МСУПосмотрел. Что там делает голова хвоста? Фу. Опять этот твой подплинтусный уровень дискуссии. Признаю, на этом уровне ты Бог и не мне с тобой тягаться в словесности. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 20:18 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
модераторы в этом разделе походу отдыхают Модератор: Почистил. Если дурнопахнущие аллегории не прекратятся - прикрою ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 20:20 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Roman Mejtesмодераторы в этом разделе походу отдыхают Нельзя мешать искать поиску истины в здоровом споре ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 20:23 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Еще даже март не наступил, а обострение - уже! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 20:31 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Roman Mejtesмодераторы в этом разделе походу отдыхают а что не так? не нравится - иди в ЗПТ ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 20:41 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
ИзопропилRoman Mejtesмодераторы в этом разделе походу отдыхают а что не так? не нравится - иди в ЗПТ срам уже на 10 страниц, который имеет какое то отдаленное отношение к топику. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 21:30 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
Roman MejtesИзопропилпропущено... а что не так? не нравится - иди в ЗПТ срам уже на 10 страниц, который имеет какое то отдаленное отношение к топику.этот срам, имеющий какое-то отдаленное отношение к программированию, был отпущен из-под бессрочного бана по коллективной просьбе нескольких заскучавших клоунов, в числе которых вроде бы был и hVostt. так что все в порядке, срись, сношай гусей. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 21:51 |
|
LINQ: кто какой синтаксис использует?
|
|||
---|---|---|---|
#18+
hVosttМСУЯ не знаю, чем ты там болеешь, но публичные методы, интерфейсы, экстеншены - это и есть код. Прикинь Да что ты? Как ты моментально переобуваешься, любая женщина тебе только позавидует. Вот только недавно ты трепался о каких-то моделях, типизации и прочем, а сейчас это оказывается просто серая масса кода. С такой риторикой можешь пойти и повозбуждать бомжей возле своего подъезда, мне такой уровень дискуссии неинтересен, ты откровенно тупишь. Дело не в переобувке, а в том, что у тебя с понимание туговато. Аналогично твоему высеру про полное левое соединение Или компиляцию лямбд в expression hVosttМСУТипизация притом здесь, что не нужно ковыряться в коллекции и делить её по null условию на 2 коллекции. Есть экземпляр класса, который содержит коллекцию для такой-то операции, коллекцию для другой операции, для третьей операции. Тебе нужно добавить элементы, обращаешься к экземпляру по требуемой операции и получаешь свою конкретную коллекцию. Это и есть типизация, дуралейка. Не гони, это всё просто строки кода. Какая ещё нах типизация? Упал чтоле? Причем тут строки кода? Я тебе говорю о том, что нужно называть вещи своими именами, а не фильтровать нуллы. Я ж говорю, закодируй в base64 и радуйся. Аналогичная грабля. hVosttМСУНе совсем понимаю, о каких частных случаях идет речь. Приведи пример, а то твои искрометные сопли про левые полные соединения больше нет желания ковырять. Мозги включи, если они ещё способны у тебя включаться. Почитай чем отличается группировка от соединения в принципе для начала. А то чешешь тут про знания LINQ, а сам даже азов тупо не знаешь. Ты понимаешь разницу между "эквивалентом результата" и "возможностью выразить результат"? Я выше именно писал про выражение результата через функционал N. Купи уже голову. hVosttМСУПосмотрел. Что там делает голова хвоста? Фу. Опять этот твой подплинтусный уровень дискуссии. Признаю, на этом уровне ты Бог и не мне с тобой тягаться в словесности. Так сам же и начал калоедничать. А теперь фукаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2015, 16:10 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1401906]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
173ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
211ms |
get tp. blocked users: |
1ms |
others: | 10ms |
total: | 443ms |
0 / 0 |