首页 > 解决方案 > InvalidCastException 预期类型为“System.Int64”,但实际值为“System.String”类型

问题描述

在随机情况下,我们应用程序的用户会收到这个无效的强制转换异常。预期类型是“System.Int64”,但实际值是“System.String”类型。这是我们无法重现的,它发生在我们的 DataGrid 模型的标识(DataGrid.Id) 字段上。数据库中bigint的类型是,我们模型中的类型是long

在此处输入图像描述

在此处输入图像描述

这似乎是在我们开始使用ToListAsync而不是ToList在实体上之后开始发生的。

public async Task<IEnumerable<TEntity>> GetAllAsync()
{
    return await _entitySet.ToListAsync();
}

我不确定这些引发错误的随机请求发生了什么。如有必要,我可以提供完整的堆栈跟踪,但堆栈跟踪会引导我到它引发异常的那一行,并且看起来数据类型匹配。这通常是一个非常随机的错误,每两天发生一次或两次。谁能建议这里可能发生的事情?

标签: c#entity-framework

解决方案


推荐阅读