- 1
phases.Where(phase => phase == null || phase.Trim().Length == 0)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+4
phases.Where(phase => phase == null || phase.Trim().Length == 0)
Нашёл в своём проекте, эта строка прошла code review. phase - это строка.
gogishvilli001 03.04.2016 15:44 # 0
bormand 03.04.2016 16:02 # +1
kerman 03.04.2016 16:26 # +1
Придерживайся какого-нибудь соглашения (пустая строка это string.Empty в БД, тогда поле NOT NULL), тримай строки перед отправкой в БД и будет тебе щастье. Будешь писать Ну или == null. Что удобнее.
bormand 03.04.2016 16:43 # 0
А вдруг у них там почему-то char вместо varchar?
gogishvilli001 03.04.2016 20:17 # 0
Серьёзно - БД в продакшене десять лет и никто не может представить, какое это говно. А я написал только webApi
roman-kashitsyn 03.04.2016 21:19 # +2
kerman 03.04.2016 22:08 # +2
Это не твоё собачье дело, оракл, что я пихаю в БД. Твоё собачье дело - положить туда то, что я дал, и вернуть мне в точности то же самое. Я не хочу терять свою информацию, только потому, что по статистике 95% не отличают пустую строку от DbNull.
bormand 03.04.2016 22:14 # 0
Вот поэтому проще заменять пустые строки на NULL или "" (главное - единообразно) и не ебать мозг...
> по дефолту конвертирует пустые строки в NULL
А кому очень-очень-очень-очень-очень хочется поебаться с различением пустых значений (вдруг эти 5 пробелов и табуляция, оставленные юзером, так важны для истории) - дефолт же всяко можно перекрыть.
kerman 03.04.2016 22:34 # +4
Вот. Я об этом и говорю. Но только это должен делать программер, а не БД по умолчанию. Если БД так делает по умолчанию, она считает программера обезьяной, которая не понимает разницы. Not Null же придумали? Вот въебите его туда. Хочется нуллов вместо пустых строк? Въебите constraint или триггер, если mysql головного мозга.
Я в этом правиле оракла вижу нарушение основного принципа работы БД: хранение данных. БД должна либо сохранить то, что я ей отдал, либо послать нахуй, потому что нельзя так хранить. Тут молча проглатывает и меняет тип. Оно бы ещё в инте 0 на null бы меняло...
defecate-plusplus 03.04.2016 22:28 # 0
то, что в стандарте написали иначе, еще не значит, что удобней
в том же постгресе 'foo' || (null as varchar) и 'foo || '' разные результаты даёт, тоже после оракла хочется морду набить тому, кто придумал такое
kerman 03.04.2016 23:01 # 0
Ну и хуле? Чем старее, тем правдивее? Пусть себе продают... Таки уже давно продали и деньги потратили. А если надо будет назад - низзя! Обратная совместимость и кастомеры загрызут. Поэтому фича.
А в постгресе нинада строки с нуллом клеить. Не, ну вот правда, на что ты надеялся?
defecate-plusplus 04.04.2016 00:06 # 0
серьезно, эквивалентность '' и null - это очень удобно
kerman 04.04.2016 00:26 # 0
defecate-plusplus 04.04.2016 00:55 # 0
пустая строка в колонке уже означает то, что она означает - нет содержимого, она уже окрасила себя в те цвета
а про говно и костыль - как стандартная функция, иногда сокращающая выражение в несколько раз, может быть плохой?
tucvbif 04.04.2016 01:18 # 0
defecate-plusplus 04.04.2016 08:43 # 0
дано: есть таблица, в которой есть стабильный ключ и строковый доп атрибут, nullable - в неё мы будем апсертить.
есть, скажем, другая таблица (например, временная), в которой есть ключ из первой таблицы и "новое" значение строкового атрибута, nullable
как мне проверить без говна и костылей, что старое значение не совпадает с новым, и только в этом случае провести обновление записи?
LispGovno 05.04.2016 08:48 # 0
defecate-plusplus 05.04.2016 09:51 # 0
о тщете и тлене nvl/coalesce или нет
kerman 04.04.2016 01:43 # +1
Ответь, добрый человек на один простой вопрос. Какого хуя мне будет БД возвращать null, если я положил пустую строку, при том, что я могу положить и пустую строку и null?
Чтобы было честно, отвечаю на вопрос. Я не говорил, что coalesce плохая, негодная. Ей в самый раз говно разгребать. Я говорил о том, что она говно и костыль, т.е. обозначал область применения.
У меня возникала необходимость отличать '' от нулл. Последний комментарий. Он может быть пустой, а может и не быть его. Задача: найти заказы с последним пустым комментарием.
p.s. Сам нуллом в строках не пользуюсь, не только в БД, но и (ужас-ужас) в коде. Предпочитаю пустую строку, как отсутствие текста.
p.p.s. Ораклом тоже не пользуюсь. Ну потому что не нужен.
kegdan 04.04.2016 07:49 # 0
Оралук сучий, троль ебучий
Всей душой его ненавижу
Vasiliy 04.04.2016 11:44 # 0
defecate-plusplus 04.04.2016 11:50 # 0
говну, которое не умеет даже в пул подключений и рест интерфейсы делает через глубокий анус, место только для домашних страничек
Vasiliy 04.04.2016 12:04 # 0
Умеет.
> рест интерфейсы делает через глубокий анус
поподробней можно чего там не так с REST ?
defecate-plusplus 04.04.2016 12:43 # 0
тут обычно принято прикладывать пруф
если пыховно умеет, нахуя людям приходится поднимать pgbouncer?
> поподробней
говорят, есть такие языки и фреймворки, их изобрели те, то не осилил php, там можно в контроллере рядом с методом написать "GET /api/foo/{fooId}/bar/{barId}", и он сам разберет запрос, вызовет нужный метод, и кое-когда и даже wadl сгенерит
можно пример такого же на php?
Vasiliy 04.04.2016 13:36 # +1
>тут обычно принято прикладывать пруф
http://stackoverflow.com/questions/39753/connection-pooling-in-php#39753
>если пыховно умеет,
легко гуглится по pconnect php
>нахуя людям приходится поднимать pgbouncer?
Некоторые и в жопу ебуться
2.
говорят, есть такие языки и фреймворки, их изобрели те, то не осилил php, там можно в контроллере рядом с методом написать
Да в пхп до такой хуйни еще не додумались.
В пхп есть другой способ ИМХО он более крассив. в одном месте написано чего и как вызывается.
http://www.slimframework.com/docs/objects/router.html#how-to-create-routes
defecate-plusplus 04.04.2016 17:41 # +1
> stackoverflow по этой ссылке
There is no connection pooling in php.
mysql_pconnect and connection pooling are two different things. There are many problems connected with mysql_pconnect and first you should read the manual and carefully use it, but this is not connection pooling.
я знаю, ты меня затралел, лалка
> http://www.slimframework.com/docs/objects/router.html#how-to-create-routes
> джумла
и как, уже работает в жумле? :)
Vasiliy 04.04.2016 18:00 # 0
http://www.slimframework.com/docs/objects/router.html#how-to-create-routes
где здесь про джумлу?
defecate-plusplus 04.04.2016 18:19 # 0
(вообще это близко к тому, о чем я спрашивал)
однако
http://www.opensourcecms.com/general/cms-marketshare.php
можно узнать, где в вышеперечисленном это используется?
как среднестатистической пыхобляди взять и запилить такой рест апи для своего корпоративного портала говнодомашней страницы на вордпрессе без анальной боли?
Vasiliy 04.04.2016 20:54 # 0
как минимум на этом
guest 05.04.2016 00:27 # +2
https://github.com/pagekit/pagekit/blob/develop/app/modules/database/src/Query/QueryBuilder.php
Реально люди в 2016м году так пишут??
gost 05.04.2016 13:06 # 0
defecate-plusplus 04.04.2016 08:35 # 0
> У меня возникала необходимость отличать '' от нулл. Последний комментарий. Он может быть пустой, а может и не быть его. Задача: найти заказы с последним пустым комментарием.
как ты себе представляешь передачу с клиента на сервер "последнего комментария" в двух различных состояниях - "пустой" и "его нет"? как должен выглядеть UX в этом случае? возможно, у вас что-то отличается, но в 146% случаях это будет textarea, который человек видит всегда и просто не заполняет его при отправке формы - в этом случае он будет пустой или null? :)
думай ещё над своим примером
а я тебе ещё один пример дам
> Сам нуллом в строках не пользуюсь, не только в БД
в постгресе, где в отличие от оракла следуют стандарту и различают '' и null, функция поиска подстроки substring возвращает null, если по заданной регулярке не было найдено такой подстроки
а теперь сконкатенируй результат этой функции с другой строкой без coalesce, я сейчас в комментарии выше даже специальную олимпиаду открою по такому случаю
Vasiliy 04.04.2016 11:06 # +1
когда товар везут через границу ему назначают ГТД у товара произведенного в РФ ГТД нет т.е. он пустой
Иногда бляди оптовики на позиции которые произведены не у нас не ставят ГТД в счет фактурах.
И это проблема потом в будущем.
Решается она как раз через отличие пустой строки от null т.е. если в БД поле с ГТД null надо эту позицию пробивать по производителю если он не РФ то формировать документ отсылать его поставщику в котором выебать его как Шамиль пидора.
defecate-plusplus 04.04.2016 11:29 # +1
оптовики ставят '' или null для позиции, которая импортирована? что им помешает сделать наоборот?
как можно заложить логику на разнице '' и null? почему не сделано специальным boolean атрибутом? как выглядит межсистемное взаимодействие? прямо так и описано в логике - если null, то товар отечественный, а если '' - импортирован, но не проставили код при импорте?
Vasiliy 04.04.2016 11:35 # 0
так вот эти комбинации я храню как пустую строку.
Если страна производитель не Россия или не указана, а гтд нет я храню null
Потом собираю все null и для каждой позиции принимаю решение если я выясняю что это РФ ставлю отметку пустая строка. Если не могу выяснить пишу письмо поставщикам.
defecate-plusplus 04.04.2016 11:43 # +1
что мешает оптовику поставить сразу пустую строку для импортного товара, и наебать твою логику, где ты постанализ делаешь только для null?
Vasiliy 04.04.2016 13:46 # 0
inkanus-gray 04.04.2016 12:47 # +1
1. Производитель не Россия и поле ГТД валидно => товар импортный, OK.
2. Производитель не Россия и поле ГТД невалидно или не заполнено => товар (возможно) импортный. Зовём Шамиля, если он действительно оказался импортным.
3. Производитель Россия и поле ГТД невалидно или не заполнено => товар отечественный, OK.
4. Производитель Россия и поле ГТД притворяется валидным => кто-то врёт.
*****
Итак, требуются два двоичных значения: совпадение производителя с Россией и валидность/присутствие ГТД.
Полагаю, что происхождение товара можно каждый раз проверять простым условием, если есть отдельная колонка для страны, эта колонка индексируется и в ней присутствуют только стандартные значения. В совсем тяжёлом случае (если база уже забита значениями типа «Расия, на деревню дедушке») придётся добавлять колонку is_russia.
С ГТД чуть сложнее: нужно ещё проверить валидность, что на каждый чих делать слишком затратно. Проще сразу не хранить в базе невалидные значения, заменяя их при вводе на пустую строку или на null. В совсем тяжёлом случае можно добавить в базу колонку gtd_is_valid.
*****
Ты предлагаешь смешать эти два флага в один и возвращать:
а) null, если (not is_russia) & (not gtd_is_valid) (мой случай 2);
б) '', если is_russia (мой случай 3);
в) другие значения в противном случае, т. е. (not is_russia) & gtd_is_valid.
Случай 4, как я понял, специально не обрабатывается.
Т. е. для экономии колонок ты используешь пустую строку как показатель, что товар отечественный.
Остаются вопросы:
1. На каком этапе производится замена поля ГТД на пустую строку или на null? Возможен ли вариант, что запись будет обработана дважды или пропущена?
2. Где-нибудь хранится флаг, указывающий, что Шамиль вызван письмо поставщику отправлено?
3. Где-нибудь хранится флаг, указывающий, что страна происхождения уточнена?
Возможно, я чего-то не понимаю, но у меня сложилось впечатление, что кто-то жмот и пытается сэкономить на спичках.
Vasiliy 04.04.2016 13:43 # 0
На этапе загрузки счет фактуры от поставщика.
2. Где-нибудь хранится флаг, указывающий, что Шамиль вызван письмо поставщику отправлено?
Само по себе письмо это лишь итог ветки в бизнес логике. там создается объект "проблема" с типом проблема у поставщика в неё вносится текст что дескать поставщик не указал ГТД и ставится отметка что менеджер "Система" отправил гневное письмо ждем ответа.
3. . Где-нибудь хранится флаг, указывающий, что страна происхождения уточнена?
нет.
Возможно, я чего-то не понимаю, но у меня сложилось впечатление, что кто-то жмот и пытается сэкономить на спичках.
Я не жмот ИМХО проще обработать одно поле в 3 состояниях чем комбинацию 2 полей в 2 состояниях каждое.
Dummy00001 04.04.2016 11:30 # +1
а вот то что на самом деле говно это то что в некоторых ситуациях оракакал делает из `''` - `' '`. (из пустой строки пробел.)
пустая строка - нулл, это еще как-то оправдать можно. но вот пробел...
defecate-plusplus 04.04.2016 11:35 # 0
пример?
Dummy00001 04.04.2016 16:15 # 0
быстрое гугление:
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:59845202 77372
A ZERO length varchar is treated as NULL.
'' is not treated as NULL.
'' when assigned to a char(1) becomes ' ' (char types are blank padded strings).
'' when assigned to a varchar2(1) becomes '' which is a zero length string and a zero length string is NULL in Oracle (it is no long '')
kerman 04.04.2016 11:07 # +3
Святая наивность ) Мир не ограничен интернет-магазинами, которые один раз сделались и всё. Существуют сложные и переменчивые приложения с длительным жизненным циклом сущностей. Вчера не было поля комментария, сегодня есть. Завтра, возможно, опять не будет. Кому его предлагали для заполнения, а кому нет - без пустой строки не разобраться.
Понимаешь? Пустая строка - это тоже ответ пользователя. Пустой, правда. А нулл - это отсутствие ответа. И поведение приложения может различаться в этих случаях. Если пользователь сказал, отъебись со своим комментом, значит надо отъебаться, а если пользователя не спрашивали, то надо спросить.
> функция поиска подстроки substring возвращает null, если по заданной регулярке не было найдено такой подстроки
И правильно делает. Только зачем тебе в таком случае клеить? Если результата поиска нет, то уже и клеить нечего, не говоря уже о том, что склейка строк - это не самое лучшее применение баз данных. Это уже клиентская логика, база данных должна отдавать, то, что нашла, а поклеить и разобраться может и клиент. Делаешь вот вьюшку, где один столбец - твоя регулярка и высасываешь клиентом хоть с null, хоть без null, это уже клиенту виднее, что ему надо.
defecate-plusplus 04.04.2016 11:25 # +2
(здравствуйте, я никита, и я не написал ни одного интернет магазина, всё как-то переменчивые системы с лайфтаймом годы)
и в этом случае затачивать логику на отличие '' от null в БД - вот это настоящий пиздец, раз уж так критично отследить был ли комент
и я снова прошу пример реальный, пожалуйста, можно скриншот, где вдруг не было критично, а потом стало, а потом опять не стало, а то теоретизация порядком поднадоела
случай из практики плиз
kerman 04.04.2016 11:52 # +1
Случай из практики уже был. Могу ещё один:
Переодически собираются менеджеры с руководством, обсудить успешность готовых заказов. Для этого они делают распечатку заказов с комментарием о производственных косяках. Соответственно к встрече готовятся и заполняют поле коммента. При этом, если косяков нет, поле может быть пустое.
Задача от руководителя группы: найти все заказы, у которых ещё нет комментария о косяках производства, чтобы по этому списку быстро выдать живительных пиздюлей бездельникам.
defecate-plusplus 04.04.2016 12:08 # 0
ну вот, UX какой?
как они заполняют поле коммента, чтобы оно ушло на бек либо пустое, либо null??
самый очевидный способ вышел? может, у вас там спец галочка есть "хочу оставить комментарий"? почему эту галочку не хранить как отдельный атрибут? почему я не могу поставить галочку "проблем нет"?
> То есть БД должна хранить любой вариант, разрешённый этим типом данных, либо null.
и как, удобно? наилучший вариант?
Vasiliy 04.04.2016 12:14 # 0
defecate-plusplus 04.04.2016 12:44 # 0
как мне отменить создание инпута?
kerman 04.04.2016 12:26 # +1
Заполнить поле - действие. По умолчанию поле NULL. Если в поле уже не нулл, значит действие было совершено, т.к. null туда никто никогда не отправляет.
> почему эту галочку не хранить как отдельный атрибут?
Можно. Но нахуя, если есть уже NULL? Костылить неудачную архитектуру упоротых разрабов? Типа, если БД смешивает пустую строку с нуллом, то проэмулируй, дружок, в коде поведение nullable field. Заебись.
Dummy00001 04.04.2016 12:14 # 0
видел много проектов где все было обвешано "NOT NULL". потому что (народ говорит) быстрее. нуллность это доп флаг и его где-то надо хранить и обновлять.
> При этом, если косяков нет, поле может быть пустое.
пользователь случайно что-то ввел в этом поле, а потом нажал backspace что бы отменить. было нулл стало пустой строкой. удачи разгребать.
из всего говна которым напичкан оракл, вы выбрали не самое говнистое.
на сибасе в старые времена видел проекты где буквально все везде было обклепано `coalesce()` потому что народ на фронт-энде заибался долбатся. только не говорите мне что это лучше.
kerman 04.04.2016 12:42 # 0
Это уже на выбор программеров, юзать или нет. Архитектура и подход, они разные бывают, где-то удобнее nullable, где-то not null. Вопрос быстродействия спорный, т.к. если в поле null, то само поле не хранится в БД, значит экономим память и выборки быстрее. С другой стороны, если поле равно default value, то во многих БД тоже значение не хранится, т.к. похожий механизм работает. Но это от реализации зависит.
> из всего говна которым напичкан оракл, вы выбрали не самое говнистое.
Да я с ораклом в живую не знаком. Про приведение ораклом пустой строки к нуллу узнал только вчера от roman-kashitsyn
Dummy00001 04.04.2016 16:53 # 0
иначе бы кастомеры слишком быстро на более дешевые альтернативы перебирались.
guest 05.04.2016 00:46 # 0
MS-SQL не сильно-то дешевле *плюс стоимость венды*
PostgreSQL примерно 30% от него покрывает
ну про всякие mysql и файлики, разделенные запятыми, мы не говорим
defecate-plusplus 05.04.2016 07:41 # 0
из наиболее критично-повседневного в нем, пожалуй, не хватает мат. вьюх, что решается закатом вручную - мат таблицей вручную с рефрешем своей функцией вручную (о фиче квери реврайт по мат вьюхе говорить не приходится, но и справедливости ради, эта оракловая фича именно для проектов, где тысячи запросов уже написаны до нас)
убогий мёрж они уже худо-бедно сделали в последней версии
+ в постгресе могут внезапно случиться факапы, сравнимые с ударом в спину - то инстанс 9.5 течь начинает при интенсивном использовании временных таблиц на беке, поедая всю память на сервере, то таблицы дефрагментируются так, что вакуум занимает по несколько минут
зато и в постгресе есть фичи, которых в оракле нет - одни только банальные массивы уже круть, по сравнению с костылями в оракле
LispGovno 05.04.2016 08:44 # 0
defecate-plusplus 05.04.2016 09:36 # 0
LispGovno 05.04.2016 09:39 # 0
например Sql Server 2008 Express & filestream
говорю
defecate-plusplus 05.04.2016 09:52 # 0
LispGovno 05.04.2016 10:27 # 0
defecate-plusplus 05.04.2016 10:31 # 0
как блобы могут помочь серверу отожрать меньше оперативной памяти, но продолжать поддерживать тысячу-две коннекшенов?
guest 05.04.2016 18:50 # 0
а если у меня таблица на 20 миллионов строк и это сильно нормализованная OLTP, какой тут файлстрим? все в XML и в BLOB чтоле??
guest 05.04.2016 19:01 # 0
нет
во-первых в лицензии express есть лимиты на использование
во-вторых резать по колву ядер смешно
и наконец винда нифига НЕ бесплатна
guest 05.04.2016 18:48 # 0
http://www.postgresql.org/docs/9.3/static/sql-creatematerializedview.html
defecate-plusplus 05.04.2016 18:54 # 0
хочу рефреш он коммит, хочу фаст рефреш
(я уж не говорю, что оракл умеет в квери реврайт, который лично мне ни разу не пригодился)
а с такой балалайкой, которую надо вручную дрочить refresh materialized view (вероятно, по режиму complete, ибо ничего иного не сказано) пусть идут в жопу - мне проще вручную сделать то же самое обычной таблицей + функцией, которая будет рефрешить ровно так, как я хочу, а бек научить дёргать такую функцию
guest 05.04.2016 18:57 # 0
тогда в жопу её, правда
в ms-sql с версии 2000 (или с 2005) такая шляпа есть
defecate-plusplus 05.04.2016 19:10 # 0
есть только какая-то фигня indexed view, выглядит и ведет себя совсем не так же
guest 05.04.2016 19:16 # 0
Я создаю индексированную вьюшку по запросу, и база всегда гарантирует мне что там свежие данные
При этом она строит граф зависимостей и обновляет ее только когда данные обновляются
Так что работать должно довольно быстро
defecate-plusplus 05.04.2016 19:44 # 0
> обновляет ее только когда данные обновляются
обновляет как, хранит ли sql server логи всех изменений исходных таблиц, чтобы в "индексированной" вьюхе изменить только часть (fast refresh)? где хранит? понимает ли sql server что над исходной таблицей может быть построено куча вьюх, каждая из которых захочет узнать про изменения? (я уж не говорю про механизм, когда мат. вьюха лежит на соседнем инстансе) можно ли регулировать состав информации об обновлении, которая ведётся сервером (речь о том, что вьюха забирает 2 колонки из исходной таблицы, в которой 30 других колонок)
> база всегда гарантирует мне что там свежие данные
если база, как ты говоришь, вносит изменения во вьюху on commit, то уже, очевидно, пока этот самый коммит не произойдет, данные во вьюхе не изменятся - т.е. в рамках моей транзакции уже началось отличие между исходными таблицам и вьюхой, которое синхронизируется обратно только после commit - это не проблема, это констатация просто
можно ли обновить тогда, когда мне удобно? (on demand)
у меня есть проект, где оракловая мат вьюха на прод сервере обновляется около минуты, и благодаря слабо изменяемым данным я могу себе позволить её обновлять раз в сутки ночью
а селектится эта мат вьюха очень часто, она риалтайм, она дрочится другой системой тысячи раз в день по конкретным id или целиком
вопросы вопросы
roman-kashitsyn 04.04.2016 12:52 # 0
И при чём тут комментарии? Ты хочешь определять наличие косяков по наличию или отсутствию комментария?
По любому должен быть статус "есть косяки/нет косяков" или джоин на таблицу косяков. И по-любому понятие "пустоты" надо будет расширять, иначе сотрудники быстро наловчатся пробельчик в комментарий ставить.
kerman 04.04.2016 13:31 # 0
Нет. Я же расписал. Коммент нужен, чтобы потом, на совещании не вспоминать судорожно, какие и где косяки были. Вот распечатка заказов, вот комменты-подсказки. Садимся и обсуждаем.
>По любому должен быть статус "есть косяки/нет косяков" или джоин на таблицу косяков.
Слишком избыточно для разового мероприятия. Удобнее одним полем обойтись.
> И по-любому понятие "пустоты" надо будет расширять, иначе сотрудники быстро наловчатся пробельчик в комментарий ставить.
Всё это проходили, запрещать пользователям пустой комментарий бесполезно, сначала будут пробелы, потом точки, потом "ок"... Это всё приводит к мусору в БД и нечитабельности таблиц. Лучше разрешить пустую строку... А, ну и строки я ещё тримаю перед отправку в базу и чищу от лишних символов. Так ччто расширять тоже не надо.
LispGovno 05.04.2016 09:04 # 0
> я жру говно не первый год и поэтому оно мне нравится
3_14dar 03.04.2016 23:23 # 0
kerman 03.04.2016 16:31 # +5
gogishvilli001 03.04.2016 20:19 # 0
kerman 03.04.2016 20:42 # +1
bormand 03.04.2016 20:46 # +2
kerman 03.04.2016 21:12 # +1
Тогда да.
gogishvilli001 03.04.2016 23:26 # 0
defecate-plusplus 03.04.2016 21:16 # +1
kerman 03.04.2016 22:14 # +2
defecate-plusplus 03.04.2016 22:25 # 0
kerman 03.04.2016 22:41 # 0
Но у нас аффтар слился, не подумал в личке отключить нотификации и слился ) Так что мы его уже, наверное, не спросим
gogishvilli001 03.04.2016 23:32 # 0
3_14dar 03.04.2016 23:48 # +2
gogishvilli001 04.04.2016 00:00 # 0
3_14dar 04.04.2016 01:05 # −2
kerman 04.04.2016 01:46 # 0
3_14dar 04.04.2016 02:42 # −1
kerman 03.04.2016 23:56 # 0
gogishvilli001 03.04.2016 23:30 # 0
gogishvilli001 03.04.2016 23:27 # 0
kerman 03.04.2016 23:52 # +2
А вот если тормозит/нагружает сеть, тогда надо выборку переносить на сторону БД. Тут ровно два варианта: либо ручками запрос с клиента (что говно), либо делать вьюху по таблице с выборкой (что тоже говно, а в некоторых случаях полное говно).
Тащем-та выбор между говном, говном и говном.
gogishvilli001 03.04.2016 23:56 # +2
Тогда: Пикачу, Говно, я выбираю тебя!
kerman 04.04.2016 00:12 # +1
p.s. linq2sql не нужен, чтобы разбираться в тонкостях выражений. Linq2sql нужен, чтобы распарсить дерево и составить запрос на сервер, там, где он может. Он нужен, чтобы запрос был записан нативным кодом, что уже очень много. И да, таки концепция его использования предусматривает, что его IQueryable иногда превращается в тыкву IEnumerable со всеми исходящими...
p.p.s. Преждевременная оптимизация - ещё худшее говно, чем это.
gogishvilli001 04.04.2016 00:29 # 0
Her 04.04.2016 16:23 # +1
kerman 04.04.2016 20:35 # 0
или даже
Ручками-то можно варианты подобрать, а кто возьмётся проверить? Мне самому интересно.
Her 05.04.2016 00:42 # +3
из профайлера
kerman 06.04.2016 02:07 # 0
Her 06.04.2016 17:04 # 0
guest 05.04.2016 19:49 # +1
gogishvilli001 06.04.2016 01:00 # 0
kerman 06.04.2016 01:27 # 0
gogishvilli001 06.04.2016 03:30 # 0
Это не я, это [code=<c#>]
1024-- 06.04.2016 10:31 # 0
inkanus-gray 06.04.2016 23:33 # +1
Хотя вменяемый движок не должен так делать.
roman-kashitsyn 06.04.2016 23:43 # +1
guesto 06.04.2016 23:46 # 0
guesto 06.04.2016 23:45 # 0
3_dar 06.04.2016 20:30 # 0
gogishvilli001 06.04.2016 23:03 # 0
3_dar 06.04.2016 23:42 # 0
gogishvilli001 07.04.2016 00:27 # 0
kerman 06.04.2016 01:27 # +1