首页 程序笔记 EntityFramework异常Win32Exception (0x80004005): 等待的操作过时。

EntityFramework异常Win32Exception (0x80004005): 等待的操作过时。

使用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查询的一些操作(查表名,查字段名,查当月,查一周,查当天)

查询数据库中所有表名select table_name from information_schema.tables where table_schema='tools' and table_type='base table';查询指定数据库中指定表的所有字段名column_nameselect column_n..

分享5个开源的.NET Excel读写操作库

本文给大家分享 5 个开源的 .NET Excel 读写操作库,它们广泛用于处理 Excel 文件,包括读取、写入、导入和导出数据。1. EPPlus简介:EPPlus 是功能强大的 .NET 库,用于创建和读取 Excel 文件(.xlsx 和 .xlsm 格式..

JavaScript中字典的常用操作

字典是一种以键值对存在的数据结构,他的底层是Array数组字典初始化和数组初始化的区别:数组的初始化:var arr = [1,2,3,4,5];//使用中括号字典的初始化: var names = {“a”:“aaa”,“b”:“bbb”,“c”:“ccc”}..

AutoMapper.AutoMapperMappingException”类型的异常在 AutoMapper.dll 中发生,但未在用户代码中进行处理

今天修改别人的代码抛出了这样的异常: AutoMapper.AutoMapperMappingException”类型的异常在 AutoMapper.dll 中发生,但未在用户代码中进行处理。进行了调试,往下走的时候直接报错了,百度之~中文网站上没..

.NET Core中的File和PhysicalFile

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

System.InvalidOperationException:“Unable to configure HTTPS endpoint.异常处理

.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”

使用Blazor,在OnInitialized里执行NavigationManager.NavigateTo("/")的时候报错了:Microsoft.AspNetCore.Components.NavigationException:“Exception_WasThrown”网上看到说这个问题只出现在render-mo..

.NET6 使用NPOI操作Excel的方法

在 .NET 6 中,你可以使用 NPOI 库来操作 Excel 文件。NPOI 是一个用于处理 Office 文档(包括 Excel)的开源库,它提供了丰富的功能和 API,可以让你在 .NET 中轻松地读取和写入 Excel 文件。以下是一个简单的示例..

Linux下RabbitMQ安装和.NET Core使用RabbitMQ.Client操作

RabbitMQ简介AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反..

Windows下RabbitMQ安装和使用EasyNetQ组件操作

RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue)的开源实现,是实现消息队列应用的一个中间件,消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可..

.NET8 IExceptionHandler用法

.NET8 中的 IExceptionHandler 是一个接口,用于处理异常。它提供了一种灵活的方法来捕获和处理异常,并提供有关异常的详细信息。IExceptionHandler 接口有两个方法:Handle(Exception exception):用于处理异常。Wa..

.NET Core连接和操作MongoDB用法示例

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

操作Excel的.NET开源库ClosedXML

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

.NET8 AOT报错:System.IO.FileNotFoundException: Could not find file 'Microsoft.AspNetCore'

AOT在Visual Studio中运行是没有问题,但要采用默认的发布配置就会报错。首先,如果采用默认发布,目标运行时的默认配置是“可移植”,会报一个错,如下图:我们知道AOT机制是生成本机执行码,所以这里的&..

WebSocketException (0x80004005): The remote party closed the WebSocket connection without completing the close handshake

我有一个使用 WebSocket 进行通信的 Xamarin 应用程序。 在客户端,我引用了 ClientWebSocket。using (var client = new ClientWebSocket() { Options = { KeepAliveInterval = new TimeSpan(0, 0, 3, 0) } }){try{a..

Windows Named Pipe 如何提前终止ConnectNamedPipe的同步等待

问题描述在Windows中使用命名管道Named Pipe进行跨进程通信时,在Server端用ConnectNamedPipe同步等待(非异步模式),如果没有Client连接,这个等待就会一直进行下去,等待过程中调用CloseHandle尝试关闭Pipe的句柄..

使用C#操作摄像头

使用C#操作摄像头,主要有两种方法:使用Windows.Media.Capture库使用第三方组件,如AForge使用Windows.Media.Capture库Windows.Media.Capture库是Windows 10中提供的官方摄像头操作库。使用该库,可以直接访问摄像..

JSPyBridge让Node.js和Python互操作

什么是 JSPyBridgeJSPyBridge 用于 Node.js 和 Python的互操作。开发者可以从 Node.js 运行 Python,或从 Python 运行 Node.js,目前该项目的深度研发工作正在陆续进行中。 如果需要体验,开发者需要安装 Node.js 14..

EF报错Win32Exception: 证书链是由不受信任的颁发机构颁发的。

.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' 附近有语法错误。

最近将原来.NET6的项目升级到.NET8,用的EF Core版本也相应升级到EF8版本,在查询数据的时候使用Contains运算符的地方报错了。Microsoft.Data.SqlClient.SqlException (0x80131904): 关键字 'WITH' 附近有语法错误。..

发表回复

返回顶部