这里的 3 位程序员同事对此感到困惑。为什么从先前的存储过程调用返回旧数据?这里我展示了第二次搜索的错误结果:
第一次搜索工作正常。我输入7392,点击按钮,按预期得到库存7392结果。但是,如果我输入第二个数字 (7395),则会再次返回不需要的 7392 结果。
我首先与设计器一起使用 EF 数据库。存储过程由实体框架函数 import ( usp_StockSearch
) 包装。结果进入实体。这是代码:
TofsData.TofsEntities context = mainWindow.TofsEntitiesContext;
ObjectResult<TofsData.StockSearchResult> stockSearchResults =
context.usp_StockSearch(NewStockNumTextBox.Text);
List<TofsData.StockSearchResult> stockList = stockSearchResults.ToList();
StockSearchResultsListBox.ItemsSource = stockList;
随着程序运行,函数导入结果进入ObjectResult<t>
我的实体类型 ( StockSearchResult
)。调用ToList()
ObjectResult 运行存储过程并将返回的数据库值放入List<StockSearchResult>
.
在运行此代码之前,我看到 stockList、stockSearchResults 和 ListBox.ItemsSource 为空,而 ListBox.Items.Count 为 0。当我单步执行代码时,我看到 .ToList() 执行后的结果不正确。
当存储过程从 SSMS 运行时,它每次都会返回预期的结果。我已经运行 SQL Profiler 以确保将正确的搜索参数传递给 SPROC。
如果我运行返回多个结果的搜索,我会返回附加到先前结果的预期结果。对这里发生的事情有任何想法吗?
提前致谢。