下午好女士们先生们--
我的任务是在一个不熟悉的遗留应用程序中发现并修复一个bug,这个应用程序最近做了一些更改,但是我没有一个简单的方法(据我所知)来测试我的理论。我希望你的集体知识能为我证实这一点。
此应用程序延迟加载查找列表(绕口令?)进入之内
DataTable
从数据库中获取,并将其作为对象存储在
HttpContext.Current.Application
(一个
HttpApplicationState
).
在进行更改之前,其中一个查找表绑定到
DropDownList
Me._lookupList = TheSession.LookupCache.SomeLookupListName.DefaultView
...
ddl.DataSource = Me._lookupList
其中“SomeLookupListName”是一个只读属性,返回
数据表
HttpContext.Current.Application
. 这些更改添加了一些筛选私有
Me._lookupList
(
DataView
)在被绑定到
下拉框
:
Me._lookupList.RowFilter = "SomeTableIDColumn <> " & ...
发生了什么,如果你还没猜到,是不是
数据视图
现在为应用程序的每个用户筛选。我查看了代码,发现大多数其他查找列表都以这种方式复制到本地成员:
Me._lookupList = New DataView(TheSession.LookupCache.SomeLookupListName)
由于我不知道如何假装多个用户来攻击本地调试会话,因此将代码更改为使用后一种方法与前一种方法有什么不同吗?是否筛选结果
DataTable.DefaultView
实际将筛选器应用于基础
与使用
New DataView(...)
?
下拉框
绑定(似乎是一个糟糕的解决方案)?我想坚持这个应用程序使用的丑陋的约定,这样我就不会让另一个开发人员感到惊讶,因为他们得到了类似的任务,否则我就绕过应用程序状态,直接从数据存储库中获取项目。
谢谢你的反馈。