gpt4 book ai didi

wpf - 延迟执行何时发生?

转载 作者:行者123 更新时间:2023-12-04 19:58:31 25 4
gpt4 key购买 nike

我有一种情况,我想从数据库中获取数据,并将其分配给 WPF 中 ListView 控件中每一行的工具提示。 (我使用的是 C# 4.0。)由于我以前没有做过这类事情,所以在我尝试在我的主要 WPF 应用程序中使用它们之前,我已经启动了一个更小、更简单的应用程序来记下这些想法。

我担心的一个问题是可能会下降的数据量。出于这个原因,我想我会使用 LINQ to SQL,它使用延迟执行。我认为这会有所帮助,并且在用户将鼠标移到相关行上之前不会下拉数据。为此,我将使用一个单独的函数将值分配给工具提示,从数据库中传递我需要传递给相关存储过程的参数。我正在使用 LINQ to SQL 执行 2 个查询,使用 2 个不同的存储过程,并将结果分配给 2 个不同的 DataGrid。

尽管我知道 LINQ to SQL 确实使用延迟执行,但我开始怀疑我正在编写的某些代码是否会破坏我使用 LINQ to SQL 的全部意图。例如,在我更简单的应用程序中进行测试时,我选择了几个不同的值来查看它是如何工作的。一个值的选择没有返回任何数据,因为没有给定参数的数据。我认为这可能会导致用户混淆,所以我想我会检查我通过运行 DBML 关联方法(与存储过程相关)分配的列表的 Count 属性。考虑一下,我认为 LINQ 有必要运行查询,以便为我提供 Count 属性的结果。我说的不对吗?

如果我消除了对列表的 Count 属性的调用,我仍然想知道我是否会遇到问题;如果仍然可以调用 LINQ,因为我通过函数调用将工具提示关联到控件?

最佳答案

您是对的,当您调用 Count 属性时,它会遍历结果集。不清楚你的最后一个问题,但 LINQ 可能会在你填充 DataGrids 时被调用,在工具提示发挥作用之后。

编辑:但是,这并不意味着延迟执行或您对它的使用有任何问题,它会在可能的最新阶段执行,就在您需要数据时执行。如果您仍想在实际获取所有数据之前检查 Count,您可以使用一个简单的 LINQ to SQL 函数来检查 Any() 行。 (实际上 Any() 可能是你想要的,而不是 Count > 0)

关于wpf - 延迟执行何时发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3885527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com