SaveChangesAsync 在 PUT 方法中不起作用
SaveChangesAsync not working inside PUT method
我正在使用 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;
}
on await _KYCDBModel.SaveChangesAsync() 它给我错误
“不允许新事务,因为会话中还有其他线程 运行”
“在提供程序连接上启动事务时发生错误。有关详细信息,请参阅内部异常。”
有时运行有时报错
请帮助我,
谢谢。
按照惯例,Put
控制器操作签名应如下所示:
public async Task<IHttpActionResult> Put([FromODataUri] string key, [FromBody]KYCBtnDetails kycBtnDetails)
{
// ...
}
如果您决定使用 Patch
,控制器操作签名应如下所示:
public async Task<IHttpActionResult> Patch([FromODataUri] string key, [FromBody]Delta<KYCBtnDetails> patch)
{
// ...
}
特别注意 FromBody
属性
我正在使用 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;
}
on await _KYCDBModel.SaveChangesAsync() 它给我错误 “不允许新事务,因为会话中还有其他线程 运行” “在提供程序连接上启动事务时发生错误。有关详细信息,请参阅内部异常。”
有时运行有时报错
请帮助我, 谢谢。
按照惯例,Put
控制器操作签名应如下所示:
public async Task<IHttpActionResult> Put([FromODataUri] string key, [FromBody]KYCBtnDetails kycBtnDetails)
{
// ...
}
如果您决定使用 Patch
,控制器操作签名应如下所示:
public async Task<IHttpActionResult> Patch([FromODataUri] string key, [FromBody]Delta<KYCBtnDetails> patch)
{
// ...
}
特别注意 FromBody
属性