|
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 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
МСУLord British Код: c# 1. 2.
Режет глаза, лямбду чё, не любишь? :) Люблю. Пох. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:51 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Lord British, у меня выдает матюг на using System.Data.Entity.Infrastructure; Infrastructure нету в неймспейсе System.Data.Entity ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:56 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
gouphLord British, у меня выдает матюг на using System.Data.Entity.Infrastructure; Infrastructure нету в неймспейсе System.Data.Entity Ты иногда документацию хоть открывай: System.Data.Entity.Infrastructure Namespace ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:57 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
МСУLord British Код: c# 1. 2. 3. 4.
DbExtensions.AsNoTracking Method (IQueryable) P.S. Этож трекинг, это не кеширование :) авторDbContext/ObjectContext может кешировать, если можно так выразиться. Понятно что трекинг. Просто некоторым оно воспримится именно как кеширование в некоторых ситуациях. Да и по твоей ссылке MS говорит авторReturns a new query where the entities returned will not be cached in the DbContext or ObjectContext. Как там у автора в отчете я ХЗ, честно говоря. Я отчеты привык на pl/sql честно говоря. DbExtensions.AsNoTracking не знал, что это проще делается. Училсо по старой книжке. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:57 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Lord BritishПонятно что трекинг. Просто некоторым оно воспримится именно как кеширование в некоторых ситуациях. Да и по твоей ссылке MS говорит Ну в принципе да, кеширование как бы одна из фичей трекинга. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 11:59 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
МСУ, А для остальных значений System.Data.Objects.MergeOption я так понимаю за редкостью использования нет экстеншн методов? Код: c# 1. 2. 3. 4. 5. 6. 7.
gouph, поэкспериментируй со значениями. AppendOnly (по умолчанию), может тебе более гибко потребуется чем NoTracking ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 12:06 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
МСУ, ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 12:09 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
gouphМСУ, Доюавь референсы или если EF другой версии замени на аналоги :) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 12:16 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
Lord BritishМСУ, А для остальных значений System.Data.Objects.MergeOption я так понимаю за редкостью использования нет экстеншн методов? Это только для трекинга, очень удобно использовать по месту. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 12:35 |
|
LINQ запрос возвращает данные только после выполнения SELECT из БД
|
|||
---|---|---|---|
#18+
[quot МСУ]MasterZivВот тут в WHERE все этом скобки обязательны? Необязательны. Так нахрена ж писать их тогда? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.01.2013, 22:28 |
|
|
start [/forum/topic.php?all=1&fid=17&tid=1350134]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
131ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 339ms |
total: | 576ms |
0 / 0 |