【发布时间】:2020-09-09 12:18:29
【问题描述】:
我正在使用 ODataController 将条目插入和更新到数据库 我正在使用 PUT 方法,使用 .UpdateEntryAsync()
这是我的 Put 方法。
public async Task<IHttpActionResult> Put([FromODataUri] string key, Delta<KYCBtnDetails> patch)
{
try
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
KYCBtnDetails KYCBtnDetails = await _KYCDBModel.KYCBtnDetails.FindAsync(key);
if (KYCBtnDetails == null)
{
return NotFound();
}
patch.Put(KYCBtnDetails);
KYCBtnDetails.id = key;
try
{
await _KYCDBModel.SaveChangesAsync();
}
catch (Exception e)
{
}
return Updated(KYCBtnDetails);
}
catch (Exception ex)
{
}
return null;
}
在 await _KYCDBModel.SaveChangesAsync() 上它给了我错误 “不允许新建事务,因为会话中有其他线程在运行” “在提供程序连接上启动事务时发生错误。有关详细信息,请参阅内部异常。”
有时运行有时报错
请帮助我, 谢谢。
【问题讨论】:
-
请分享minimal reproducible example。简短回答 -
_KYCDBModel可能注册错误。 -
看起来问题寻求更多细节
-
99.99% 这是因为在多个请求之间共享
_KYCDBModel。 -
同意丹尼斯的观点