首页 > 解决方案 > 在 .NET Core 3.1 中使用 LINQ 从文件表中删除行

问题描述

我有一个启用了 FILESTREAM 的 SQL Server 和一个填充了许多行的文件表。我希望能够使用 .NET Core 3.1 中的 LINQ 从此表中删除选定的行。

在我的基础设施层中,我实现了以下内容:


public async Task<bool> DeleteReport(Guid streamId)
{
    var query = _dbContext.ReportFileTable
                          .Remove(await _dbContext.ReportFileTable
                                                  .Where(e => e.stream_id.Equals(streamId))
                                                  .FirstOrDefaultAsync());
    var saved = await _dbContext.SaveChangesAsync();
    
    return saved == 1 ? true : false;
}

这种方法适用于我的其他常规数据库表,但它对 FileTable 失败并在执行时返回超时,_dbContext.SaveChangesAsync();尽管查询本身显示该行已标记为删除。

Microsoft.EntityFrameworkCore.DbUpdateException
---> Microsoft.Data.SqlClient.SqlException (0x80131904): Execution Timeout Expired.

我知道 .NET Core 对 FileStream 的支持几乎没有。我该如何解决这个问题?

标签: linqasp.net-corefilestreamfiletable

解决方案


推荐阅读