Добрый день, дамы и господа -
Мне было поручено найти и исправить ошибку в незнакомом устаревшем приложении, в которое были внесены некоторые недавние изменения, но у меня нет простого способа(что я знаю), чтобы проверить мою теорию.Я надеюсь, что ваши коллективные знания подтвердят этот тест для меня.
Это приложение лениво загружает списки поиска (tongue-twister?) В DataTable
s из базы данных и сохраняет их как объект в HttpContext.Current.Application
(HttpApplicationState
).
До внесения изменений одна из таблиц поиска была привязана к DropDownList
следующим образом (надумано):
Me._lookupList = TheSession.LookupCache.SomeLookupListName.DefaultView
...
ddl.DataSource = Me._lookupList
где 'SomeLookupListName '- это свойство только для чтения, которое возвращает DataTable
из HttpContext.Current.Application
.Изменения добавили некоторый код, который фильтрует приватный Me._lookupList
(DataView
) перед привязкой к DropDownList
:
Me._lookupList.RowFilter = "SomeTableIDColumn <> " & ...
Что происходит, если вы еще не догадались, это то, чтоDataView
теперь фильтруется для каждого пользователя приложения.Я просмотрел код и обнаружил, что большинство других списков поиска копируются в локальные члены следующим образом:
Me._lookupList = New DataView(TheSession.LookupCache.SomeLookupListName)
Поскольку я не знаю, как атаковать мой сеанс локальной отладки, притворяясь несколькими пользователями,изменение кода для использования последнего метода на самом деле будет отличаться от первого?Применяет ли фильтрация результата DataTable.DefaultView
фактическое применение фильтра к базовому DataTable
иначе, чем при переносе таблицы с помощью New DataView(...)
?
Имеет ли смысл просто очистить фильтр строк после DropDownList
связан (кажется плохим решением)?Я хотел бы придерживаться уродливых соглашений, которые использует это приложение, чтобы не удивлять другого разработчика в будущем, который получает аналогичную задачу, в противном случае я бы просто обошел состояние приложения и вытащил элементы прямо из хранилища данных..
Я ценю ваши отзывы.