
Gid
08.03.2017
00:27:48
Тут заебись, одобряю

Владимир
08.03.2017
00:27:55
что во

Gid
08.03.2017
00:28:15

Google

Gid
08.03.2017
00:28:20
Код не смотрел мб там говно
Просто листнул на моб
Ну да, в коде пиздец
Надо спать идти

Владимир
08.03.2017
00:29:43

Arseniy
08.03.2017
00:29:54
Во
ну кароч. я мало чо понял, кроме того, что
foreach (var bindedTag in tags)
ты вытянул все теги на клиент

Владимир
08.03.2017
00:30:05
Кстати нет
Все делается одним запросом на сервере
скл ссылкой выше, который он генерит
выполняется оно в последней строчке

Arseniy
08.03.2017
00:32:34
понял, ты формируешь в цикле 100500 условий

Gid
08.03.2017
00:33:43
Пахнет скверной

Google

Владимир
08.03.2017
00:34:01
Ну на самом деле итерации объединяются здесь:
targetResult = bindedTag.SearchType == SearchType.Include
? targetResult.Intersect(filteredBindedTags.Select(x => x.File))
: targetResult.Except(filteredBindedTags.Select(x => x.File));
В итоге, каждый тег, это +1 вложенный запрос

Arseniy
08.03.2017
00:34:04
у тебя есть code-first моделька?

Владимир
08.03.2017
00:34:14
db first
а, ну модельки то есть
в любом случае

Arseniy
08.03.2017
00:34:48
ну можешь прислать контекст на эти 2 таблицы, чтобы можно было поиграться с базой и ентити
потому что енто НЮАНСЫ ентити

Владимир
08.03.2017
00:36:01
Так-то у тебя все правильно было практически.
Там просто есть еще неважные в этом контексте атрибуты.

Arseniy
08.03.2017
00:36:02
http://stackoverflow.com/a/15792781
чуваки вообще говорят что жыза

Владимир
08.03.2017
00:36:45
http://pastebin.com/4wg4Hbee

Arseniy
08.03.2017
00:38:33
поготь 5 минуток я набросаю

Владимир
08.03.2017
00:38:39
>as the formatted categories (Id + "-" + Name).
Лол, тоже это сейчас пытаюсь сделать
Но блин, сравнение строк это же ужасно долго
Плюс индексы к чертям

Nikita
08.03.2017
00:42:21
рестор через dotnet restore, msbuild restore, nuget restore и через студию
дают четыре РАЗНЫХ результата
добро пожаловать в 2017-ый год

Gid
08.03.2017
00:44:26

Владимир
08.03.2017
00:44:49

Google

Владимир
08.03.2017
00:44:59
санкаку, данбуру, яндере

Gid
08.03.2017
00:45:14
разные
Я дерпибуру парсил, но у меня чуть проще было
Тупо выкачивал Full
Дергая апи

Владимир
08.03.2017
00:45:54
Я не только паршу, я много чего еще делаю

Gid
08.03.2017
00:46:06
Да я по поко вижу
Ты их в таблицу куда-то пихаешь
Хз чё там
Парсер с приблудами

Владимир
08.03.2017
00:48:44
Можно считать и так?
Я например еще историю изменения тегов паршу и поддерживаю все в актуальном состоянии

Gid
08.03.2017
00:50:10

Владимир
08.03.2017
00:50:33

Gid
08.03.2017
00:51:21
Щас бы в 2017 анимуфагом быть

Владимир
08.03.2017
00:51:48
У меня 1к тайтлов
Отступать уже некуда

Gid
08.03.2017
00:52:23
Хотя у моего бати больше
Ладно, немного оффтопа
А теперь надо набираться сил чтоб завтра лампово пописывать бутстрап

Владимир
08.03.2017
00:54:23
поготь 5 минуток я набросаю
В общем, смотри, лол.
Я сделал так:
http://pastebin.com/XBhQfy39
И оно внезапно работает.
Лучше работает, чем раньше. И я доволен.
Но если у тебя получится еще лучше, будет неплохо :3

Google

Arseniy
08.03.2017
00:54:57

Gid
08.03.2017
00:55:00

Arseniy
08.03.2017
00:55:01
попробуй так

Admin
ERROR: S client not available

Gid
08.03.2017
00:55:20
Это лицо

Arseniy
08.03.2017
00:55:32
чо
хенд мейд аватара

Gid
08.03.2017
00:56:01
Стала жизнь на день короче, всем живым спокойной ночи

Владимир
08.03.2017
00:57:23
2017-03-08 03:52:01.0899|||db request completed in 22141 ms
2017-03-08 03:52:04.4870|||alt db request completed in 2847 ms
2017-03-08 03:52:33.4699|||db request completed in 28982 ms
2017-03-08 03:52:36.7607|||alt db request completed in 2718 ms
2017-03-08 03:53:10.7447|||db request completed in 33981 ms
2017-03-08 03:53:13.8598|||alt db request completed in 2557 ms
alt это со сравнением строк новое, без alt, это как раньше было.
Более того, оказывается со скипом и тейком в старом запросе время выполнения расло постоянно.
В начале это загрузка вообще без тегов, 150мс 1 тег, 300 мс 2 тега и 2500мс это третий тег со значением.

Arseniy
08.03.2017
00:57:42
удоли
и на пастбин

Владимир
08.03.2017
00:57:54
Сейчас попробую то, что ты скинул
http://pastebin.com/7kvVUEhq
Хм, чет как-то подозрительно
http://pastebin.com/4ufgjTYv
alt alt это твой новый вариант. Он немного проигрывает варианту предыдущему, пока дело не доходит до сравнения строк, а там он показывает какие-то 23мс?
Сейчас я сделаю, чтобы он возвращал количество найденного, чтобы чекнуть правильность

Arseniy
08.03.2017
01:18:34
ну тут интересно, что ему дешевле делать
разбирать запрос или конкатенировать строки

Владимир
08.03.2017
01:20:57
{SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Md5] AS [Md5],
[Extent1].[Size] AS [Size],
[Extent1].[Path] AS [Path],
[Extent1].[OriginalName] AS [OriginalName],
[Extent1].[CollectionId] AS [CollectionId]
FROM [dbo].[File] AS [Extent1]
WHERE ( NOT EXISTS (SELECT
1 AS [C1]
FROM [dbo].[BindedTags] AS [Extent2]
WHERE [Extent2].[TargetId] = [Extent1].[Id]
)) AND ( EXISTS (SELECT
1 AS [C1]
FROM [dbo].[BindedTags] AS [Extent3]
WHERE ([Extent3].[TagId] IN (42)) AND ([Extent3].[TargetId] = [Extent1].[Id])
))}
Вот такую штуку он билдит.
Т.к. в эксклуде тегов нет, он и условия не добавляет, лил

Arseniy
08.03.2017
01:24:30
и что?

Google

Владимир
08.03.2017
01:24:31
Хотя я не понимаю, почему он это делает

Arseniy
08.03.2017
01:24:54
ну добавит он пустое множество, но экзист вернет истину

Владимир
08.03.2017
01:25:06
>SELECT
1 AS [C1]
FROM [dbo].[BindedTags] AS [Extent2]
WHERE [Extent2].[TargetId] = [Extent1].[Id]
вот это вернет тру,
следовательно экзист, следовательно 0 результатов

Arseniy
08.03.2017
01:26:47
я понел

Владимир
08.03.2017
01:37:11
проблема фиксится, если убрать "!" из условий в MakeExcludeFilter.
Но теперь я осознал, что мы забыли кое-что важное. Если есть два инклуд тега, то должны возвращаться только те файлы, в которых есть оба этих тега.
Хз, как это сделать в подобном виде.

Arseniy
08.03.2017
01:49:55
@e1ee7 два тега на один файл?

Владимир
08.03.2017
01:50:29
Да.

Arseniy
08.03.2017
01:51:05
я тут вроде починил предыдущий баг
можешь проверить?

Владимир
08.03.2017
01:51:30
Ну давай, но я тоже вроде его починил, вот этим:
проблема фиксится, если убрать "!" из условий в MakeExcludeFilter.

Arseniy
08.03.2017
01:51:38
https://gist.github.com/stdray/766441295cec0b7ed7bd5904abba04c8

Владимир
08.03.2017
01:52:16
нифига себе

Arseniy
08.03.2017
01:52:28
ну кароч
Эта группа больше не существует