|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
Сижу туплю. Нужен обычный запрос Код: c# 1.
ToString() говорит, что linq2entities не знает. Как быть-то?! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2013, 18:59 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
netivan, Не спрашивая зачем это надо... Это только поймет EF provider для ms sql. Способ 1 (так и не заработал из-за пробелов, хз как побороть) Код: c# 1. 2. 3. 4. 5. 6.
Код: sql 1. 2. 3. 4. 5.
Способ 2 (заработал как надо) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Код: c# 1. 2. 3. 4. 5.
Можно еще через UDF, позже запилю... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2013, 20:00 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
Способ 3 (не создавая ничего в БД) в csdl в пределах узла Scheme запиливаем следующий кусок: Код: sql 1. 2. 3. 4. 5. 6.
Делаешь такой вот STUB: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Запрос LINQ TO ENTITY Код: sql 1. 2. 3.
Код: sql 1. 2. 3. 4. 5.
PROFIT! Да изапрос вроде не такое уж и УГ. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2013, 21:23 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
GetTotalAmount заменить на ConvertToStringUDF. на работоспособность не влияет но в заблуждение вводит. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2013, 21:29 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
Последнее (3 способ) может работать, теоретически, и на других EF провайдерах. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2013, 21:37 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
netivanСижу туплю. Нужен обычный запрос Код: c# 1.
ToString() говорит, что linq2entities не знает. Как быть-то?! Для работы с деревьями, что-ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2013, 11:25 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
МСУ, нет, все тривиально. Делать автозаполнение по первым введенным цифрам. Не думал,что такой просто запрос будет такой гемор! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 10:50 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
решение нашел: Код: c# 1.
w.ID - int, term - строка. В MSSQL передается типа того: Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 11:22 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
netivanрешение нашел За такие планы выполнения запроса тебя DBA кастрирует... :( ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 11:58 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
МСУ, сам бы себя кастрировал, но жалко. =) Думаю кэш немного спасет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 12:09 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
netivan, если есть в MS SQL аналог Oracle function based index, можно с планом выкрутиться. но вставка медленнее станет. можно колонку завести id_str, проиндексировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 12:31 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
Я в таких случаях поступаю очень просто: в DAL (или что там у нас) тупо пишу динамику и по сразу месту типизируюсь в класс. Никаких левых костылей в базе, хорошая производительность, всё спрятано от глаз. Быстро и просто. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 12:37 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
netivanрешение нашел: Код: c# 1.
w.ID - int, term - строка. В MSSQL передается типа того: Код: sql 1.
Хозяин - барин, но я бы выбрал третий способ (через UDF), честно говоря. Мне его запрос больше нравится. Если таблица большая и хочешь повысить скорость выборок, при твоем выборе можно поступить так пример Код: sql 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.
Т. е. тебе не нужно даже подтягивать что-либо в твою EF Model. Текущие запросы при твоем выборе будут подхватывать индекс. Я бы для себя делал по-другому COMPUTED колонку втянул бы в модель и так бы и писал ID_STR LIKE "44559%" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 13:47 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
Lord BritishЯ бы для себя делал по-другому COMPUTED колонку втянул бы в модель и так бы и писал ID_STR LIKE "44559%" Плохая практика пилить модель исходя из потребностей выборок. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 14:04 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
МСУ, Ну в идеале, конечно ты прав. Но лучше пусть работает быстро и гарантированно, чем красиво тормозит. Дело в том, что предложенный способ зависит от того, во что транслируется SqlFunction, с UDF конечно более детерминированно. Так что если кто-то неправильно чихнет, может индекс не подхватить. Из своего кабинета вылезут DBA, пользователи, а это не хорошо. Вобщем, варианты даны. Автор сделает по-своему. :D netivan, если интересно в деталях вот в Attache ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 14:41 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
Lord BritishМСУ, Ну в идеале, конечно ты прав. Но лучше пусть работает быстро и гарантированно, чем красиво тормозит. 13765853 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 14:51 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
"... Так что если кто-то неправильно чихнет..." например, если вместо Код: sql 1.
напишет Код: sql 1. 2. 3. 4. 5.
То Seek индекса может смениться на Scan. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 14:52 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
МСУ, я согласен, твой выход наверное оптимален, но я прям в Бизнес-логике запрос этот делаю, но думаю вынести в DAL. Это так сказать @TODO, иначе скучно будет))). Кстати ты побовал делать например select T1.*,T2.* - тогда не умрет контекст? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 14:54 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
netivanКстати ты побовал делать например select T1.*,T2.* - тогда не умрет контекст? За такие запросы нужно яйца вырывать с корнями. P.S. И вообще, на больших наборах LIKE - плохая практика (без дополнительной фильтрации или полнотекстового индекса). Да и лайк по ID - весьма сомнительная хотелка... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 14:57 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
МСУ, ну тем не менее работать будет или нет с 2 таблицами? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 14:59 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
МСУLord BritishМСУ, Ну в идеале, конечно ты прав. Но лучше пусть работает быстро и гарантированно, чем красиво тормозит. 13765853 ? :) я просто все рассуждения строю только из того, что автор дал ID LIKE '53535%' а для чего он это использует - не заморачиваюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 15:00 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
netivanМСУ, ну тем не менее работать будет или нет с 2 таблицами? Я не понял твоего вопроса. Что значит "умрет контекст" и что это за запрос такой "select T1.*,T2.*"? Речь о CROSS APPLY что-ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 15:01 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
Lord British:) я просто все рассуждения строю только из того, что автор дал ID LIKE '53535%' а для чего он это использует - не заморачиваюсь. Тут согласен, при учете, что "задача" автора адекватна-таки. В чем я очень сомневаюсь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 15:03 |
|
как сделать ID. LIKE
|
|||
---|---|---|---|
#18+
МСУLord British:) я просто все рассуждения строю только из того, что автор дал ID LIKE '53535%' а для чего он это использует - не заморачиваюсь. Тут согласен, при учете, что "задача" автора адекватна-таки. В чем я очень сомневаюсь :) Тоже сомнения с самого начала, потому открестился еще в первом посте. Lord BritishНе спрашивая зачем это надо... Честно говоря, решая такие скажем политкорректно "не стандартно поставленные" задачки, можно в деталях изучить загогулины ORM и посмотреть что с этим можно сделать в плане оптимизации со стороны СУБД. Полезная вещь, понимаешь. Потому и включился в беседу. Спортивный интерес, понимаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2013, 15:12 |
|
|
start [/forum/topic.php?fid=17&fpage=29&tid=1350136]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 165ms |
0 / 0 |