|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
Ниже представлен набор сущностей и запросы к ним через EF. В запросе используется уже известный экземпляр weed типа Weed. Я хочу получить список всех UseRecommendation для известного экземпляра Weed. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Надо все результаты на каждой итерации получить в виде одного словаря, причём со значениями, упорядоченными по ключу. Т. к. на каждой итерации у меня получается по словарю, то для получения одного словаря их надо слить. Слить - муторно. Как переписать так, чтобы в один запрос прошло всё? Что-то мне подсказывается, что надо использовать ForEach метод списка, но не уверен. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 13:31 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320Как переписать так, чтобы в один запрос прошло всё? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 14:08 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
А это точно в один запрос к БД превратится? И как упорядочить таки по ключу? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 14:29 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320А это точно в один запрос к БД превратится? user7320В запросе используется уже известный экземпляр weed типа Weed. Я хочу получить список всех UseRecommendation для известного экземпляра Weed.А, Вы хотите один запрос к БД для одного экземпляра weed? user7320И как упорядочить таки по ключу? SortedDictionary<TKey, TValue> Class ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 14:45 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
Как-то так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
или Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 14:56 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
skyANA Код: c# 1. 2. 3. 4.
Спасибо, это как раз то, что я хотел. А если я хочу это запихнуть в словарь только для чтения: Код: c# 1. 2. 3. 4.
и потом по итоговой коллекции Suppressions пройтись foreach'ем, то порядок сохранится? И ещё. Первый ваш пример кода здесь явно не подходит, т. к. при добавлении элемента к сортированному словарю порядок не сохраняется. Наверное, больше подошёл бы OrderedDictionary? Хотя он и не дженерик, но потом ведь можно из Object (тип для его ключей и значений) привести значения к нужному типу? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 16:15 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
авторА если я хочу это запихнуть в словарь только для чтения: IReadOnlyDictionary<string, UseRecommendationModel> Suppressions = new ReadOnlyDictionary<string, UseRecommendationModel>( new SortedDictionary<string, UseRecommendationModel>( ... и потом по итоговой коллекции Suppressions пройтись foreach'ем, то порядок сохранится? Не, я понимаю, что можно проверить на простых данных. Но будет ли он это делать ВСЕГДА? Может, на всяких 1,2,3,4 и прочих а,б,с он хеши тоже упорядоченные генерит. Или это плохой способ суммирования функциональностей - оборачивание каждый раз в класс, который содержит нужную функциональность? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 16:24 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320Первый ваш пример кода здесь явно не подходит, т. к. при добавлении элемента к сортированному словарю порядок не сохраняется.Не понял, Вы же хотели упорядочить по ключу? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 16:28 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
Для на фига Вам ReadOnlyDictionary ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 16:31 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
skyANAДля на фига Вам ReadOnlyDictionary ? Ну, это поле модели. И я хочу пользователю модели явно показать, что изменять коллекцию не нужно. А чего в этом плохого-то? skyANAuser7320Первый ваш пример кода здесь явно не подходит, т. к. при добавлении элемента к сортированному словарю порядок не сохраняется.Не понял, Вы же хотели упорядочить по ключу? Да не, всё нормально, вы мне помогли, как я хотел. Просто, я тут вычитал на StackOverflow, что SortedDictionary не сохраняет порядок новых добавленных элементов. Т. е., если хочешь сортированный словарь, то ему надо сразу сортированные данные скармливать. Вот у вас в первом примере данные последовательно добавляются, а во втором - сразу скармливаются сортированные. Поэтому я и говорю, что использование SortedDictionary с последовательным добавлением данных вроде как бессмысленно - они всё равно будут не sorted, то зачем именно SortedDictionary? Ну это так, в качестве размышлений я. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 16:38 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
авторnew ReadOnlyDictionaryuser7320, он же уже реализует IReadOnlyDictionary ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 16:44 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
Где-то в степиавторnew ReadOnlyDictionaryuser7320, он же уже реализует IReadOnlyDictionary Ну да. Ну и что, что интерфейс? Я тут насмотрелся примеров кода у всяких джошей смитов - там почему-то если коллекцию какую-то хотят присвоить, то поле класса объявляют как ICollection или ещё через какой интерфейс. Я раньше тоже объявлял сразу через конкретные реализации, а потом решил, что стоит передрать у крутанов. Для себя объяснил это, что так будет проще переопределять эти поля, т. к. их можно заменить любой конкретной реализацией, а не только какой-нибудь одной. На самом деле Suppressions - поле класса. Это я просто для простоты тут написал, что это типа переменная. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 16:55 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320skyANAДля на фига Вам ReadOnlyDictionary ? Ну, это поле модели. И я хочу пользователю модели явно показать, что изменять коллекцию не нужно. А чего в этом плохого-то?Бррр. Насколько я помню пользователь модели у Вас - это представление. Кто-то параллельно с Вами пишет код представления и способен там какую-то логику нафигачить? А чтобы понять плохо это, или нет, надо на всю модель посмотреть. Вообще есть такое понятие как инкапсуляция, и я что-то сомневаюсь, что Вам вообще нужно Dictionary наружу из модели выставлять. user7320skyANAпропущено... Не понял, Вы же хотели упорядочить по ключу? Да не, всё нормально, вы мне помогли, как я хотел. Просто, я тут вычитал на StackOverflow, что SortedDictionary не сохраняет порядок новых добавленных элементов. Т. е., если хочешь сортированный словарь, то ему надо сразу сортированные данные скармливать. Вот у вас в первом примере данные последовательно добавляются, а во втором - сразу скармливаются сортированные. Поэтому я и говорю, что использование SortedDictionary с последовательным добавлением данных вроде как бессмысленно - они всё равно будут не sorted, то зачем именно SortedDictionary? Ну это так, в качестве размышлений я.Вы бы взяли лучше пример по ссылке на MSDN, что я приводил и посмотрели, вместо того, чтобы всякую фигню читать и размышлять о ней. Глядишь и время на создания (генерации посредством scaffolding) репозитория появилось. Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 17:02 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320И я хочу пользователю модели явно показать, что изменять коллекцию не нужно. Ну изменить он коллекцию и что дальше? Или перельёт данные в другую коллекцию и там изменит, в чем проблема. Это же не thread safe реализация, где n-потоков творят не пойми чего со статическим экземпляром. Какая-то истерия по поводу read only... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 17:13 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
МСУ, он наверное ( если это словари) закешировать хочет с укропчиком и чесночком, что бы другие пользователи в базу не лазили )) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 17:27 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
авторБррр. Насколько я помню пользователь модели у Вас - это представление. Кто-то параллельно с Вами пишет код представления и способен там какую-то логику нафигачить? Да. Как это называется... "защитное программирование", чтоли. авторВообще есть такое понятие как инкапсуляция, и я что-то сомневаюсь, что Вам вообще нужно Dictionary наружу из модели выставлять. Этот словарь отдаётся через свойство. По свойству надо пройтись (форичем) в представлении и вытащить из него все данные. Выбрал словарь, чтобы не лепить новую сущность, типа Пара<ключ, значение>. Можно было и какой-нибудь List<KeyValuePair<, >>, но зачем - есть же словари? А так, в представлении нужно выводить как ключи, так и значения. авторВы бы взяли лучше пример по ссылке на MSDN, что я приводил и посмотрели, вместо того, чтобы всякую фигню читать и размышлять о ней. Да, точно. Он сортирует. Я перепутал с OrderedDictionary, который сохраняет порядок добавления элементов. МСУuser7320И я хочу пользователю модели явно показать, что изменять коллекцию не нужно. Ну изменить он коллекцию и что дальше? Или перельёт данные в другую коллекцию и там изменит, в чем проблема. Это же не thread safe реализация, где n-потоков творят не пойми чего со статическим экземпляром. Какая-то истерия по поводу read only... Это уже называется "бороться со фреймворком". Ну, в смысле, с моделями, которые я ему даю. Если явно перельёт данные - то это уже не моя проблема и я за это не отвечаю. Я ему данные дал в готовом виде, которые надо только считать. А что плохого в ридонли? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 19:48 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
авторА что плохого в ридонли? Я ещё и private set; иногда добавляю. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2013, 19:50 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320авторБррр. Насколько я помню пользователь модели у Вас - это представление. Кто-то параллельно с Вами пишет код представления и способен там какую-то логику нафигачить? Да. Как это называется... "защитное программирование", чтоли. авторВообще есть такое понятие как инкапсуляция, и я что-то сомневаюсь, что Вам вообще нужно Dictionary наружу из модели выставлять. Этот словарь отдаётся через свойство. По свойству надо пройтись (форичем) в представлении и вытащить из него все данные. Выбрал словарь, чтобы не лепить новую сущность, типа Пара<ключ, значение>. Можно было и какой-нибудь List<KeyValuePair<, >>, но зачем - есть же словари? А так, в представлении нужно выводить как ключи, так и значения. авторВы бы взяли лучше пример по ссылке на MSDN, что я приводил и посмотрели, вместо того, чтобы всякую фигню читать и размышлять о ней. Да, точно. Он сортирует. Я перепутал с OrderedDictionary, который сохраняет порядок добавления элементов. МСУпропущено... Ну изменить он коллекцию и что дальше? Или перельёт данные в другую коллекцию и там изменит, в чем проблема. Это же не thread safe реализация, где n-потоков творят не пойми чего со статическим экземпляром. Какая-то истерия по поводу read only... Это уже называется "бороться со фреймворком". Ну, в смысле, с моделями, которые я ему даю. Если явно перельёт данные - то это уже не моя проблема и я за это не отвечаю. Я ему данные дал в готовом виде, которые надо только считать . А что плохого в ридонли? Хм... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Ну и зачем ридонли словарь? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 00:18 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
skyANA Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Ну и зачем ридонли словарь? Ридонли словарь - нельзя менять данные в одном и том же словаре. Приватное свойство типа словарь - нельзя назначить новый словарь этому свойству. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 12:09 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
Да, кстати, забыл приватные сеты сделать у себя в моделях. Щас поправлю. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 12:10 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320skyANA Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Ну и зачем ридонли словарь? Ридонли словарь - нельзя менять данные в одном и том же словаре. Приватное свойство типа словарь - нельзя назначить новый словарь этому свойству.Выше кусок кода видишь? Там тоже этого нельзя. Зачем лишние телодвижения и лишняя память? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 12:24 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320нельзя менять данные в одном и том же словаре. А твоя модель будет уметь реагировать на сетевые скачки напряжения? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 13:15 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
skyANAuser7320пропущено... Ридонли словарь - нельзя менять данные в одном и том же словаре. Приватное свойство типа словарь - нельзя назначить новый словарь этому свойству.Выше кусок кода видишь? Там тоже этого нельзя. Зачем лишние телодвижения и лишняя память? Ну, если порядок сохраняется без сортированных списков и словарей (достаточно отсортировать в запросе), то я могу ещё согласиться убрать словари и вообще сортированные коллекции. Но тогда сделать ReadOnlyCollection: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Почему я это делаю? Ну, типа, я параноик . Как бы, такой тип, который явно говорит о себе "я только для чтения", должен предостеречь пользователя от попыток изменить его данные. Конечно, если пользователь захочет, он может сделать себе копию этих данных в изменяемую коллекцию и менять их сколько хочет. Но тогда я уже как бы за это не отвечаю. Нормальное объяснение? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 13:50 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
МСУuser7320нельзя менять данные в одном и том же словаре. А твоя модель будет уметь реагировать на сетевые скачки напряжения? У меня модель присоединена к ИБП и ещё аварийка в подвал идёт, где сидит ТЛП и готов всегда начать крутить педали. )) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 13:51 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Как бы, такой тип, который явно говорит о себе "я только для чтения", должен предостеречь пользователя от попыток изменить его данные. Конечно, если пользователь захочет, он может сделать себе копию этих данных в изменяемую коллекцию и менять их сколько хочет. Но тогда я уже как бы за это не отвечаю. Нормальное объяснение? Правда, наверное, .ToList() в конце будет лишний. Когда в модели представления форичем начнут проходить, тогда коллекцию и материализуют. Зачем делать это заранее, да? Это как раз то, про что Где-то в степи говорил, что любит "ленивое исполнение", да? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 13:56 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320Почему я это делаю? Ну, типа, я параноик . Как бы, такой тип, который явно говорит о себе "я только для чтения", должен предостеречь пользователя от попыток изменить его данные. Конечно, если пользователь захочет, он может сделать себе копию этих данных в изменяемую коллекцию и менять их сколько хочет. Но тогда я уже как бы за это не отвечаю. Нормальное объяснение?Вот ты отжигаешь. А IEnumerable о чём говорит пользователю? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 15:35 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320Это как раз то, про что Где-то в степи говорил, что любит "ленивое исполнение", да?Он про инициализацию говорил, а не про то, что ты сейчас придумал. Что такое инициализация, тебе понятно? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 15:38 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
skyANAuser7320Почему я это делаю? Ну, типа, я параноик . Как бы, такой тип, который явно говорит о себе "я только для чтения", должен предостеречь пользователя от попыток изменить его данные. Конечно, если пользователь захочет, он может сделать себе копию этих данных в изменяемую коллекцию и менять их сколько хочет. Но тогда я уже как бы за это не отвечаю. Нормальное объяснение?Вот ты отжигаешь. А IEnumerable о чём говорит пользователю? Что это коллекция для перечисления. Но вдруг он такой же, как я был вчера? Вот я ему и помогу. А где тогда использовать IReadOnlyCollection, если его везде может заменить IEnumerable? skyANAuser7320Это как раз то, про что Где-то в степи говорил, что любит "ленивое исполнение", да?Он про инициализацию говорил, а не про то, что ты сейчас придумал. Что такое инициализация, тебе понятно? У меня этот код в конструкторе модели (ASP.NET MVC), и там происходит инициализация свойства Suppressions. А чтобы контекст БД, ска, не сдох, я его создам в контроллере и передам в конструктор модели, во. Надеюсь, он (контекст) доживёт до представления. Если не доживёт, то придётся ToList() в конструкторе писать... Эмм... Тогда мне непонятно, как сделать ленивую инициализацию без опасения, что контекст БД будет собран мусорщиком... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2013, 15:51 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320skyANA Код: c# 1. 2. 3. 4.
Спасибо, это как раз то, что я хотел.[/src] Ещё, запрос я немного изменил, но суть его та же: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
У меня этот код выдал исключение "Unable to create a constant value of type 'CropsProtectionDBLibrary.WeedGroup'. Only primitive types or enumeration types are supported in this context." Вобщем, я посмотрел, и вроде как проблема в том, что EF не может в запросе использовать объект WeedGroup и надо избавиться от вызова конструктора. Вроде, советуют использовать не полные объекты в методах типа Contains, Any и т. п., а только их айдишники (т. е. примитивные типы, о которых и говорится в исключении). Я переделал так (добавил селекты с выбором айдишников), но всё равно та же ошибка: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Подскажите, как исправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 11:38 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
А это совсем невыполнимо зах-ть список id'шников в List, а потом уже его и использовать... собсно такими ответами и забит стековерфлоу... Код: c# 1. 2. 3. 4. 5.
Можа и так прокатит... не проверял... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 11:48 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
buserА это совсем невыполнимо зах-ть список id'шников в List, а потом уже его и использовать... собсно такими ответами и забит стековерфлоу... Код: c# 1. 2. 3. 4. 5.
Можа и так прокатит... не проверял... Не проверял, но что-то мне подсказывает, что вложенный запрос должен быть целиком в интерфейсе IQueryable, а ToList() переведёт его в IEnumerable. Щас проверю. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 11:53 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
Методом исключения нашёл, что проблема в Any. Вот так исключения не возникает Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 12:02 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
buserА это совсем невыполнимо зах-ть список id'шников в List, а потом уже его и использовать... собсно такими ответами и забит стековерфлоу... Код: c# 1. 2. 3. 4. 5.
Можа и так прокатит... не проверял... Как я и сказал, LtoE не понимает всякие ToList. Вобщем, к моему ответу выше, стоит добавить в Any какую-нибудь логику, как вылетает исключение. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 12:10 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 12:21 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
Хотя... может что и поменялось ужо... года трЫ назад последний раз на это смотрел... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 12:24 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
P.S.: вы будете преданы анафеме, возможно, кто-то из коллег, что будут сопровождать код, даже попытаются забить вас камнями... если не успеете вовремя уволиться... это я про километры линку запросов ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 12:30 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
Короче, понял, в чём дело. Надо ту переменную, к которой Contains применяется, сделать примитивным типом. Иначе этот Contains по коллеции создаёт на каждый элемент коллеции экземпляр через конструктор и пытается сравнить его с объектом, который в Contains находится. Поэтому перед запросом делаю так Код: c# 1.
и к результату тогда уже применяю Contains(). Полностью всё выглядит так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
buserP.S.: вы будете преданы анафеме, возможно, кто-то из коллег, что будут сопровождать код, даже попытаются забить вас камнями... если не успеете вовремя уволиться... это я про километры линку запросов А что, километры SQL-запросов (как говорил один мой знакомый, из Москвы присылают SQL-запрос на полстраницы А4, в котором есть ошибка - к вечеру надо отослать запрос без ошибки) - это кульно и рульно? Или коллеги не знают, где взять дебаггер-вижуалайзер-ToSQL-генератор для LtoE? С одной стороны коллеги твердят, что запросы должны быть маааленькие, и лучше много маленьких, чем один большой. С другой - нужно всё делать одним запросом, и ты мне тут своей кучей маленьких сервер не надрывай! Лучший вариант среди всего этого, по-моему - делать, как ты считаешь нужным. А другие пусть выполняют свою работу - разбирают большие запросы и оптимизируют нагрузку сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:00 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
Достаточно, что я удобно и глазу приятно форматирую эти запросы - видите, как строчки ровненько так и по лесенке сидят? Лично мне нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:01 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320Достаточно, что я удобно и глазу приятно форматирую эти запросы - видите, как строчки ровненько так и по лесенке сидят? Лично мне нравится. Кстати, про коллегу выше - ему дают тупо одну сплошную строку на эти самые пол-А4. Когда он её в редакторе в удобный вид приведёт, всё может растянуться ещё хуже. Ну и кто тут идиот - москвичи-ламерьё, или я? И когда это кого-то стали пугать запросы в три строки с жалким одним подзапросом? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 13:03 |
|
Помогите изменить запрос так, чтобы отказаться от слияния словарей
|
|||
---|---|---|---|
#18+
user7320user7320Достаточно, что я удобно и глазу приятно форматирую эти запросы - видите, как строчки ровненько так и по лесенке сидят? Лично мне нравится. Кстати, про коллегу выше - ему дают тупо одну сплошную строку на эти самые пол-А4. Когда он её в редакторе в удобный вид приведёт, всё может растянуться ещё хуже. Ну и кто тут идиот - москвичи-ламерьё, или я?Боюсь что и москвичи и ты ... |
|||
:
Нравится:
Не нравится:
|
|||
16.10.2013, 14:31 |
|
|
start [/forum/topic.php?all=1&fid=17&tid=1349908]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
121ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 9ms |
total: | 223ms |
0 / 0 |