使用EntityFramework生成的Sql语句,出现下列异常:
异常详细信息: System.ComponentModel.Win32Exception: 等待的操作过时。
代码如下:
query.Count = items.Count();
var result = items
.OrderByDescending(m => m.Id)
.Skip(query.Skip)
.Take(query.Take).ToArray();
意思是先把符合条件的记录总数查出来,再取分页数据。
调试得到了生成的sql语句,在sqlserver查询窗口执行后,速度挺快的。应该不是语句的性能问题。
后来发现是Count()的问题。Count()其实是.NET在内存里进行的,所以当执行Count()的时候等于把所有记录都查出来到内存里再进行Count(),数据量很大,可想而知会超时。
如果要让代码尽量去生成LINQ to SQL,有个很简单的原则,就是尽量用LINQ、Lambda表达式,这样EF才可能帮我们翻译。所以,在EF中,要进行Count操作,应该这样写:
query.Count = items.Count(x=>x.Id>0);
这时,Count()接受了一个lambda表达式,LINQ to SQL就能准确翻译为“SELECT COUNT”了。这时再试就不会超时了。
1

站心网
使用EntityFramework生成的Sql语句,出现下列异常:异常详细信息: System.ComponentModel.Win32Exception: ..
为您推荐
Mysql查询的一些操作(查表名,查字段名,查当月,查一周,查当天)
程序笔记
2025年01月22日
查询数据库中所有表名select table_name from information_schema.tables where table_schema='tools' and table_type='base table';查询指定数据库中指定表的所有字段名column_nameselect column_n..

分享5个开源的.NET Excel读写操作库
程序笔记
2024年12月09日
本文给大家分享 5 个开源的 .NET Excel 读写操作库,它们广泛用于处理 Excel 文件,包括读取、写入、导入和导出数据。1. EPPlus简介:EPPlus 是功能强大的 .NET 库,用于创建和读取 Excel 文件(.xlsx 和 .xlsm 格式..
JavaScript中字典的常用操作
程序笔记
2024年12月07日
字典是一种以键值对存在的数据结构,他的底层是Array数组字典初始化和数组初始化的区别:数组的初始化:var arr = [1,2,3,4,5];//使用中括号字典的初始化: var names = {“a”:“aaa”,“b”:“bbb”,“c”:“ccc”}..
今天修改别人的代码抛出了这样的异常: AutoMapper.AutoMapperMappingException”类型的异常在 AutoMapper.dll 中发生,但未在用户代码中进行处理。进行了调试,往下走的时候直接报错了,百度之~中文网站上没..

.NET Core中的File和PhysicalFile
程序笔记
2024年10月16日
最近在把.NET Framework的项目转成.NET Core,中间遇到不少坑,原来一个下载文件的地方突然又报了FileNotFoundException: Could not find file异常。查看源代码发现是Controller里原来的return File()这个方法在Core..

.NET Core网站按F5运行时,在Program.cs里运行到app.Run()的时候报错:System.InvalidOperationException:“Unable to configure HTTPS endpoint. No server certificate was specified, and the default developer ..

Blazor NavigateTo报错Microsoft.AspNetCore.Components.NavigationException:“Exception_WasThrown”
程序笔记
2024年10月11日
使用Blazor,在OnInitialized里执行NavigationManager.NavigateTo("/")的时候报错了:Microsoft.AspNetCore.Components.NavigationException:“Exception_WasThrown”网上看到说这个问题只出现在render-mo..
.NET6 使用NPOI操作Excel的方法
程序笔记
2024年09月26日
在 .NET 6 中,你可以使用 NPOI 库来操作 Excel 文件。NPOI 是一个用于处理 Office 文档(包括 Excel)的开源库,它提供了丰富的功能和 API,可以让你在 .NET 中轻松地读取和写入 Excel 文件。以下是一个简单的示例..

Linux下RabbitMQ安装和.NET Core使用RabbitMQ.Client操作
程序笔记
2024年09月22日
RabbitMQ简介AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反..

Windows下RabbitMQ安装和使用EasyNetQ组件操作
程序笔记
2024年09月22日
RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现,是实现消息队列应用的一个中间件,消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可..
.NET8 IExceptionHandler用法
程序笔记
2024年09月14日
.NET8 中的 IExceptionHandler 是一个接口,用于处理异常。它提供了一种灵活的方法来捕获和处理异常,并提供有关异常的详细信息。IExceptionHandler 接口有两个方法:Handle(Exception exception):用于处理异常。Wa..

.NET Core连接和操作MongoDB用法示例
程序笔记
2024年09月12日
连接和操作MongoDB与.NET Core可以通过MongoDB官方提供的.NET驱动程序来实现。以下是一种基本的连接和操作MongoDB的方法:步骤 1: 安装 MongoDB 驱动程序首先,在你的.NET Core项目中安装 MongoDB.Driver 包。你可以..

操作Excel的.NET开源库ClosedXML
程序笔记
2024年09月11日
推荐一个高性能、跨平台的操作Excel文件的.NET开源库。ClosedXML简介ClosedXML是一个.NET第三方开源库,支持读取、操作和写入Excel 2007+ (.xlsx, .xlsm)文件,是基于OpenXML封装的,让开发人员无需了解OpenXML API..

.NET8 AOT报错:System.IO.FileNotFoundException: Could not find file 'Microsoft.AspNetCore'
程序笔记
2024年09月11日
AOT在Visual Studio中运行是没有问题,但要采用默认的发布配置就会报错。首先,如果采用默认发布,目标运行时的默认配置是“可移植”,会报一个错,如下图:我们知道AOT机制是生成本机执行码,所以这里的&..
WebSocketException (0x80004005): The remote party closed the WebSocket connection without completing the close handshake
程序笔记
2024年09月04日
我有一个使用 WebSocket 进行通信的 Xamarin 应用程序。 在客户端,我引用了 ClientWebSocket。using (var client = new ClientWebSocket() { Options = { KeepAliveInterval = new TimeSpan(0, 0, 3, 0) } }){try{a..
Windows Named Pipe 如何提前终止ConnectNamedPipe的同步等待
程序笔记
2024年08月24日
问题描述在Windows中使用命名管道Named Pipe进行跨进程通信时,在Server端用ConnectNamedPipe同步等待(非异步模式),如果没有Client连接,这个等待就会一直进行下去,等待过程中调用CloseHandle尝试关闭Pipe的句柄..
使用C#操作摄像头,主要有两种方法:使用Windows.Media.Capture库使用第三方组件,如AForge使用Windows.Media.Capture库Windows.Media.Capture库是Windows 10中提供的官方摄像头操作库。使用该库,可以直接访问摄像..

JSPyBridge让Node.js和Python互操作
程序笔记
2024年08月12日
什么是 JSPyBridgeJSPyBridge 用于 Node.js 和 Python的互操作。开发者可以从 Node.js 运行 Python,或从 Python 运行 Node.js,目前该项目的深度研发工作正在陆续进行中。 如果需要体验,开发者需要安装 Node.js 14..
EF报错Win32Exception: 证书链是由不受信任的颁发机构颁发的。
程序笔记
2024年07月20日
.NET8 EntityFrameworkCore连接数据库报错:An unhandled exception occurred while processing the request.Win32Exception: 证书链是由不受信任的颁发机构颁发的。Unknown locationSqlException: A connection was..
EF Core 8 (EF8) Contains报错:Microsoft.Data.SqlClient.SqlException (0x80131904): 关键字 'WITH' 附近有语法错误。
程序笔记
2024年07月19日
最近将原来.NET6的项目升级到.NET8,用的EF Core版本也相应升级到EF8版本,在查询数据的时候使用Contains运算符的地方报错了。Microsoft.Data.SqlClient.SqlException (0x80131904): 关键字 'WITH' 附近有语法错误。..