|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
LINQ-запрос не возвращает ни одной строки, хотя данные, удовлетворяющие запросу есть. Если подключиться к БД (MS SQL) например, через Management Studio и сделать SQL-запрос, то LINQ-запрос начинает возвращать данные. В чем может быть дело? Т.е. как сделать, чтобы LINQ-запрос возвращал данные сразу. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 09:34 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
gouphLINQ-запрос не возвращает ни одной строки, хотя данные, удовлетворяющие запросу есть. Если подключиться к БД (MS SQL) например, через Management Studio и сделать SQL-запрос, то LINQ-запрос начинает возвращать данные. В чем может быть дело? Т.е. как сделать, чтобы LINQ-запрос возвращал данные сразу. Выложите минимальный проект, где это воспроизводится или linq запрос, во что он транслируется, структуру таблицы и пример данных в ней. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 09:47 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
gouph, местная гадалка на кофе в отпуске. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 09:57 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Lord British, from a in db.LOT where (a.PURCHASE.FILIALID == UserFilial) && ((a.PURCHASE.DATE_PURCHASE >= DateBegin.Date) && (a.PURCHASE.DATE_PURCHASE <= DateEnd.Date)) select a.ID).Count() CREATE TABLE [dbo].[PURCHASE]( [ID] [uniqueidentifier] NOT NULL, [NUMBER] [varchar](250) NULL, [DATE_PURCHASE] [date] NOT NULL, [SUBJECT_PURCHASE] [varchar](8000) NOT NULL, [FILIALID] [uniqueidentifier] NOT NULL, [CREATORID] [uniqueidentifier] ROWGUIDCOL NOT NULL, [CREATEDATE] [datetime] NOT NULL, [METHOD_PURCHASE] [uniqueidentifier] NOT NULL, [FORM_PURCHASE] [uniqueidentifier] NULL, [PREFERENCE] [uniqueidentifier] NULL, [COMMENT_PREFERENCE] [varchar](8000) NULL, [DEPARTID] [numeric](18, 0) NULL, CONSTRAINT [PK_PURCHASE] PRIMARY KEY CLUSTERED CREATE TABLE [dbo].[LOT]( [ID] [uniqueidentifier] ROWGUIDCOL NOT NULL, [SUBJECT_LOT] [varchar](8000) NOT NULL, [START_COST] [numeric](18, 2) NOT NULL, [PROCEDURE_COMPLETE] [bit] NOT NULL, [PURCHASEID] [uniqueidentifier] NULL, [ENTERED_CONTRACT] [bit] NULL, [MODIFIED_CONTRACT] [bit] NULL, [TERMINATED_CONTRACT] [bit] NULL, [NO_APPLICATION] [bit] NULL, CONSTRAINT [PK_LOT] PRIMARY KEY CLUSTERED ALTER TABLE [dbo].[LOT] WITH CHECK ADD CONSTRAINT [FK_LOT_PURCHASE] FOREIGN KEY([PURCHASEID]) REFERENCES [dbo].[PURCHASE] ([ID]) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 10:01 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
gouph, еще данных подкиньте в виде insert'ов в эти таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 10:06 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
gouph, тебя пример данных просили сделать (инсерты) и реальный linq-запрос (компилируемый). Во-вторых, используй тег SRC, чтобы хоть как-то сделать удобоваримым твой гавнокод. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 10:06 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Lord British, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 10:23 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
МСУ, что значит реальный запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 10:25 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
gouphМСУ, что значит реальный запрос? Вот это запрос: Код: c# 1. 2. 3. 4.
не компилируется, потому что написан не полностью, а также неизвестно, чему равен UserFilial. Чтобы не гадать на кофейной гуще и не вытаскивать клещами из тебя информацию, научись правильно задавать вопросы - сразу и посуществу (пусть даже избыточно) выложить схему, наполнение и сам linq-запрос. Всё должно быть работающим. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 10:28 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4.
В БД Сыпется Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
По твоим данным 1 строка выбирается. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 10:52 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
gouphLINQ-запрос не возвращает ни одной строки, хотя данные, удовлетворяющие запросу есть. Если подключиться к БД (MS SQL) например, через Management Studio и сделать SQL-запрос, то LINQ-запрос начинает возвращать данные. В чем может быть дело? Т.е. как сделать, чтобы LINQ-запрос возвращал данные сразу. Насчет всего что написали коллеги ранее полностью присоединяюсь. Чем правильней и точней опишешь проблему тем быстрее тебе ответят. Пока же можно только предположить, что ты данные пишешь в базу одним контекстом, а читаешь другим, который был ранее создан. Также вопрос еще в том, как ты пишешь в базу? Создаешь объекты и средставми LINQ добавляешь данные в базу или же они у тебя добавляются с помощью хранимых процедур? В любом случае нужен полный рабочий код с комментариями. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 10:53 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
ой ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 10:54 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
МСУ, Код: c# 1. 2. 3. 4. 5. 6.
Я не очень понимаю, зачем нужны данные. Проблема повторяется не постоянно. Т.е. большую часть времени все работает как положено. Но иногда случается так, что пользователи данные в таблицу ввели, а в отчете (который формируется с помощью LINQ-запроса) данных нету. После того, как я захожу напрямую в БД и делаю выборку (не обязательно совпадающую с конкретным LINQ-запросом) отчет начинает работать нормально. В связи с этим я думаю, что вряд ли конкретные цифровые или строковые значения в таблицах могут повлиять на результаты запроса. Может у LINQ-запросов есть какое-нибудь кэширование, или что-то подобное. Т.е. м.б он обращается к БД не каждый раз? Может быть нужно поменять/добавить какие-либо настройки в web.config. Я хотел бы выяснить именно это. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 10:56 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Lord British, Да, все выбирается. Все LINQ-запросы полностью рабочие. Возвращают верные данные. Никаких эксепшенов или чего-либо подобного. Т.е. бОльшую часть времени все Ок. Но, иногда случается так, что пользователи ввели данные в таблицы, а в отчет, который формируется с помощью LINQ-запросов данные не попадают. После того, как я захожу в БД, делаю SQL-запрос (не обязательно даже полностью повторяющий LINQ-запрос) ситуация исправляется. Т.е. отчет возвращает статистику по свежезанесенным данным. Я бы хотел узнать, может быть в LINQ-запросе существует какое-то кэширование и его можно как-либо отключить (через web.config или другим способом) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:01 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Homosum, Запись в БД - SQL-запросами. Т.е. INSERT INTO PURCHASE VALUES() и т.п. Отчеты формируются LINQ-запросами. БОльшую часть времени они работают как положено, но иногда почему то не отображают введенные данные. Т.е. пользователь ввел данные, зашел в отчет, а там количество записей = 0. Иногда, т.е. достаточно редко. Я хотел бы понять, с чем это связано. М.б. есть какое-то кэширование или что-то подобное. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:11 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
gouph, значит в твоем коде завелся шуршунчик. Надеюсь, ты сам понимаешь абсурдность своего вопроса? Откуда мы знаем, что там у тебя в приложении с отчетом? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:17 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
А вот у меня встречный вопрос: from a in db.LOT where (a.PURCHASE.FILIALID == UserFilial) && ((a.PURCHASE.DATE_PURCHASE >= DateBegin.Date) && (a.PURCHASE.DATE_PURCHASE <= DateEnd.Date)) select a.ID).Count() Вот тут в WHERE все этом скобки обязательны? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:22 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
MasterZivВот тут в WHERE все этом скобки обязательны? Необязательны. gouph Тыкну пальцем в небо. Если у тебя SSRS, то он действительно может кешировать результаты (флаг clearSession): http://codearticles.ru/Home/ArticleView/1813 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:23 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Я не очень понимаю, зачем нужны данные. Проблема повторяется не постоянно. Т.е. большую часть времени все работает как положено. Но иногда случается так, что пользователи данные в таблицу ввели, а в отчете (который формируется с помощью LINQ-запроса) данных нету. это вы просто транзакции не завершаете вовремя. Commit... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:26 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
gouphЯ не очень понимаю, зачем нужны данные. Проблема повторяется не постоянно. Я не очень понимаю смысл твоего вопроса в форуме. Перечитай его еще раз и осознай, что на него впринципе нельзя ответить. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:31 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
gouphLord British, Я бы хотел узнать, может быть в LINQ-запросе существует какое-то кэширование и его можно как-либо отключить (через web.config или другим способом) DbContext/ObjectContext может кешировать, если можно так выразиться. Просто приведу пример, я то не знаю как у тебя там что написано. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: 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.
Т. есть почитай подробнее о System.Data.Objects.MergeOption. gouph Т.е. отчет... Report серверы тоже умеют кешировать. И скорее всего это твой случай. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:38 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Lord British, подправил гавнакод чтобы проблема воспроизводилась автоматом Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:47 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Lord British Код: c# 1. 2.
Режет глаза, лямбду чё, не любишь? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:48 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Lord British Код: c# 1. 2. 3. 4.
DbExtensions.AsNoTracking Method (IQueryable) P.S. Этож трекинг, это не кеширование :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:50 |
|
|
start [/forum/topic.php?fid=17&fpage=29&tid=1350134]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
110ms |
get tp. blocked users: |
1ms |
others: | 9ms |
total: | 214ms |
0 / 0 |