首页 > 解决方案 > ASP.NET Core 3.1:System.InvalidCastException:无法将“System.Int32”类型的对象转换为“System.Int64”类型

问题描述

图片错误

我的控制器:

[HttpDelete("{roomId}")]
    public async Task<IActionResult> Delete(string roomId)
    {
        var affectedResult = await _manageRoomService.Delete(roomId);
        if (affectedResult == 0)
            return BadRequest();

        return Ok();
    }

我的服务:我尝试了调试,它在代码块中停止foreach (var image in images)

public async Task<int> Delete(string roomId)
{
        var room = await _context.Rooms.FindAsync(roomId);

        if (room == null) 
             throw new EWebHotelException($"Cannot find a room: {roomId}");

        var images = _context.RoomImages.Where(i => i.RoomId == roomId);

        foreach (var image in images)
        {
            await _storageService.DeleteFileAsync(image.ImagePath);
        }
        
        _context.Rooms.Remove(room);

        return await _context.SaveChangesAsync();
}

我在 FileStorageService.cs 中的方法:

public async Task DeleteFileAsync(string fileName)
{
        var filePath = Path.Combine(_userContentFolder, fileName);

        if (File.Exists(filePath))
        {
            await Task.Run(() => File.Delete(filePath));
        }
}     

在表 RoomImages 列Id的类型为 int 32。

标签: c#castingexpression-trees

解决方案


推荐阅读