gpt4 book ai didi

c# - SingleOrDefault() 是否远程查询?

转载 作者:行者123 更新时间:2023-11-30 21:37:57 25 4
gpt4 key购买 nike

考虑一个在不同位置有多台计算机的环境。这些计算机运行着一个 Windows 应用程序,并有一个计时器每 5 分钟检查一次同步新数据。信息通过互联网连接同步到一个集中位置。客户端计算机和中央服务器上的数据库都是 SQL Server 数据库。

在写入远程(集中式)服务器之前,使用 SingleOrDefault() 方法检查远程是否存在具有相同 ID 的记录。客户报告使用的互联网数据激增。我想知道集中式数据库是否变得太大并且 SingleOrDefault 通过连接返回整个可查询数据并执行查询客户端。会是这样吗?什么是不做同样事情的替代解决方案?

最佳答案

如果您使用 Queryable.SingleOrDefault然后它将在服务器上处理(如果您记录数据库查询,您可以在 top 2 1 中看到 select 的使用)。

但是,如果您使用的是 Enumerable.SingleOrDefault然后它将在(数据库)客户端上进行处理。

您需要避免从 IQuerable<T> 进行转换至 IEnumerable<T> (例如,通过使用 AsEnumerable )。

可以通过代码检查或查看生成的 SQL 来检测此问题。

1 top 2用于检测多个结果,使用SingleOrDefault时出错.

关于c# - SingleOrDefault() 是否远程查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46525022/

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