|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Всем привет. есть сущность следующего рода: Код: 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.
не соображу как сделать следующее: пользователю выводить окно для ввода данных(D,d1,ap и т.п.)(это то я как раз догадываюсь как сделать) а вот как фильтровать на основании полученных данных от пользователя не соображу. как сделать условие только на те поля которые пользователь указал, например D=20, L=104 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 13:23 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 13:27 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
bald56rus, безусловно практичней и правильней использовать linq to sql, а выражение формировать в ручную из полученных от пользователя данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 13:39 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Shocker.Pro, я наверно не правильно что то делаю: вот код контрола: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
данный запрос возвращает мне значения где D==null, что я делаю не так!? мне необходимо что бы при наличии D были значения где D=то что ввел пользователь ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 13:50 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
bald56rusя наверно не правильно что то делаюда, вы невнимательно смотрите на то, что я написал и не пытаетесь его понять ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 13:59 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
может я неправильно вопрос сформулировал. т.е. я ожидаю при отсутсвии значения у параметра что бы он вообще не фигурировал в запросе, введены все 4 параметра запрос выглядит как то так: Код: c# 1. 2. 3. 4. 5.
иначе например так Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 14:01 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Shocker.Probald56rusя наверно не правильно что то делаюда, вы невнимательно смотрите на то, что я написал и не пытаетесь его понять поправте меня: n => userD == null || n.D == userD я это понимаю как userD==null или userD=значение.правильно я понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 14:03 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
То есть либо пользователь не дал значение: userD == null (и тогда вторая часть условия не проверяется), либо поле сущности равно значению, которое указал пользователь ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 14:15 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
bald56rus, Уважаемы, остановитесь нести бред из детского сада. Поднимитесь на уровень выше Вам надо в гугде набрать - c# convert string to expression что бы для каждого параметра создать выражение,( есть не плохие тулзы для этого (dynamicexpression)) а потом суммировать что получите в единое выражение набрать : -C# append expressions а в конце вставить что получилось в Where и всё.. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 14:20 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
можно и так собрать Код: c# 1. 2. 3.
EF скомпонует все в единый where ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 15:27 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Shocker.Pro огромное спасибо за конкретный пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 16:23 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Где-то в степи, может для Вас это "детский лепет" а я не знал о таком способе(если бы знал то не спрашивал) и Вам спасибо за источник информации ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 16:26 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
bald56rus, модератор, в туториал Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2014, 16:53 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
дополнение, конструкция выше для композиции Where Очень часто as asp.net требуется сортировка по списку полей as String таки: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2014, 12:29 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Где-то в степитребуется сортировка по списку полей as String таки:Таки Dynamic LINQ . ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2014, 12:38 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Shocker.Pro Код: c# 1.
Index Seek с этим не дружит. Предпочитаю: Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2014, 12:40 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Алексей КShocker.Pro Код: c# 1.
Index Seek с этим не дружит. Предпочитаю: Код: c# 1. 2.
сделал так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
все работает, не до конца понимаю в чем принципиальная разница между "userID.HasValue" и "D != null" на сколько я понял в обоих случаях сравнение с null идет. ну да ладно.спасибо всем откликнувшимся ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 09:24 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Где-то в степи, а зачем все эти танцы с бубном, если есть старый проверенный System.Linq.Dynamic? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 09:57 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
bald56rusне до конца понимаю в чем принципиальная разница между "userID.HasValue" и "D != null" на сколько я понял в обоих случаях сравнение с null идет.Принципиальной разницы нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 10:01 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
МСУГде-то в степи, а зачем все эти танцы с бубном, если есть старый проверенный System.Linq.Dynamic?Ну хочется. Может оно у него медленно работает, таки строки приходится парсить. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 10:02 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
По вот этому рецепту http://codearticles.ru/articles/2544 Что может быть проще? Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 10:04 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Алексей КНу хочется. Может оно у него медленно работает, таки строки приходится парсить. Так он делает тоже самое через DynamicExpression.ParseLambda :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 10:05 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
МСУАлексей КНу хочется. Может оно у него медленно работает, таки строки приходится парсить. Так он делает тоже самое через DynamicExpression.ParseLambda :)Ну тогда не знаю. Бог ему судья. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 10:07 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Где-то в степи такой Где-то в степи ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 10:09 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
МСУ, ну не ужели не понятно, что ПЕРЕМЕННОЕ число параметров, там основной акцент не на динамик, а на ADD ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 10:44 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
МСУ, например тебе прилетает словарь параметров 1 можно тупо составить из него строку с параметрами ( ну как в подготовительной группе учили) и скормить ее со значениями порсеру. 2 а можно сделать как я показал. тут ничего личного.. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 10:48 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Где-то в степи, а то что наворочено bald56rus , это у.г. ( никакого романтизма, в стителе С.А. - закидать труппами..) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 10:50 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Где-то в степиМСУ, например тебе прилетает словарь параметров 1 можно тупо составить из него строку с параметрами ( ну как в подготовительной группе учили) и скормить ее со значениями порсеру. 2 а можно сделать как я показал. тут ничего личного..Люди готовы на всё, лишь бы не торчал наружу IQueryable из репозитария. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 11:00 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Алексей КЛюди готовы на всё, лишь бы не торчал наружу IQueryable из репозитария. :-) Пока что ещё многие боятся IQueryable, непременно всеми силами скрывая, оборачивая и трансформируя во всякие IEnumerable/ICollection. Бедные люди )) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 11:08 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
это что бы ногу не отстрелили, и опять же иллюзия благополучия и достатка. берите пример с прозекторов, те что бы освободить руку - размешать сахар в чае, кладут бутерброд на грудь раслененки - и ничего.. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 11:25 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Где-то в степи, и чего? Рассказать, как конкатенацией собирать строку запроса? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 11:27 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Где-то в степиМСУ, например тебе прилетает словарь параметров 1 можно тупо составить из него строку с параметрами ( ну как в подготовительной группе учили) и скормить ее со значениями порсеру. 2 а можно сделать как я показал. тут ничего личного.. Так первый способ лучше ибо будет использоваться штатный длинк. Во втором же способе ты пишешь велосипед, который и так уже реализован. Причём такой велосипед будет так или иначе менее функционален по сравнению с длинком. В чем профит? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 11:31 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
МСУ, ой не смешите мои искандеры. О прозекторах вспомнилось. Мой хороший знакомый устроился в мог грузчиком. ............. Приходит дядя с женой забирать тело своей матери - старушки. - ( дядя) Мама готова? - (прозектор) Да можете забирать, вот там в углу за колонной. пара подходит, а там мой друг увлеченно , никого не замечая , пыхтя выдирает у ней золотой мост пассатижами. Дяде плохо, у его жены истерика.. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 11:33 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Ты бы лучше прослойку со словарем написал, которая на выходе отдавала годную строку для длинк запроса. Это лучше, чем переписывать весь движок. Цены б не было такому рецепту :) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 11:41 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
То есть по факту это была бы дополнительная пятая перегрузка Where, принимающая на вход словарь. Вот это по феншую было бы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 11:44 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
МСУ, а чет там ценного то, помнишь критерион ( разминочный проект), так вот внедрили в магазин похожее а поиск навесили через атрибуты типа, а типы формирует пользователь через подсобку, получилось заепись, закончат морду посмотришь.. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 11:50 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
МСУТо есть по факту это была бы дополнительная пятая перегрузка Where, принимающая на вход словарь. Вот это по феншую было бы.Совсем идеи кончились? Оформляй рецептами, только ссылку на первоисточник укажи. :-) 1. Обход дерева . 2. Парсер выражения, используемого для указании имени свойства, с поддержкой Property1.Property2.Property3 . 3. Быстрый доступ к свойству поздним связыванием. В той же папке всякие компараторы и т. п., использующие "это". 4. Добавление к запросам, сгенерированным EF, отладочной информации: Stack Trace и WCF Action. Хватит пока. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 11:55 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
пока голова не этим забита - внук заболел, пойду дочь подменю в аптеку да по магазинам.. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 12:02 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
bald56rus Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Можно так сделать. Код: c# 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 12:26 |
|
Запрос с неопределенным количеством условий
|
|||
---|---|---|---|
#18+
Алексей КМСУТо есть по факту это была бы дополнительная пятая перегрузка Where, принимающая на вход словарь. Вот это по феншую было бы.Совсем идеи кончились? Оформляй рецептами, только ссылку на первоисточник укажи. :-) 1. Обход дерева . 2. Парсер выражения, используемого для указании имени свойства, с поддержкой Property1.Property2.Property3 . 3. Быстрый доступ к свойству поздним связыванием. В той же папке всякие компараторы и т. п., использующие "это". 4. Добавление к запросам, сгенерированным EF, отладочной информации: Stack Trace и WCF Action. Хватит пока. :-) Так наоборот надо, из строки (словаря) в expression ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2014, 12:40 |
|
|
start [/forum/topic.php?all=1&fid=17&tid=1349653]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
132ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
others: | 273ms |
total: | 520ms |
0 / 0 |