【发布时间】:2020-12-03 19:36:29
【问题描述】:
我见过的最奇怪的问题之一。 我正在使用实体框架发出异步 SQL 请求
环境: 点网核心 nuget Microsoft.EntityFrameworkCore 版本 3.1.19
它适用于 Visual Studio。 部署在 Kubernetes 集群时失败:
-
没有崩溃
-
没有例外
-
程序刚刚退出!
public Job GetJobById(int jobId) { using ManagerContext context = new ManagerContext(_callContext); Job job = context.Jobs.Where(j => j.Id == jobId).FirstOrDefault(); return job; } public async Task<List<Job>> GetJobs(Expression<Func<Job, bool>> expression = default) { using ManagerContext context = new ManagerContext(_callContext); IQueryable<Job> jobs; if (expression == default) jobs = context.Jobs; else jobs = context.Jobs.Where(expression); return await jobs.ToListAsync(); }
分析: 调用 Job job = context.Jobs.Where(j => j.Id == jobId).FirstOrDefault(); 有效并返回值。
写入异步的相同请求 return await jobs.ToListAsync(); 静默失败。
如果你看下图,你会发现调用后的代码没有被调用,我们也没有进入catch。
程序直接退出而没有崩溃。
【问题讨论】:
标签: .net-core entity-framework-core