我们正在使用Entity Framework 6,并正在使用异步查询数据库。
我们还有一个集成测试,用于运行代码并为此设置;
代码:
var table1Id = await _dbContext.Table1.Where(x => x.IdentificationNumber == identificationNumber)
.Select(y => y.Id)
.SingleOrDefaultAsync().ConfigureAwait(false);
var table2Id = await _dbContext.Table2.Where(y => y.Table1Id == table1Id)
.Select(y => y.Id)
.FirstOrDefaultAsync().ConfigureAwait(false);
//Code continues...
使用T-SQL和NOLOCK
提示在SSMS中读取数据库会在表中显示数据。
运行我的代码会执行两个查询;第一个正确运行,并按预期方式返回table1Id,但第二个未返回任何值。看来连续两次通话不起作用?如果我切换顺序,它将是table1Id,不会以任何值启动。
如果我不使用异步/等待,那么它也可以工作。
有人对此行为有很好的解释吗?我做错了吗?