C# SaveChangesSync在PUT方法中不起作用
我正在使用ODataController向数据库插入和更新条目 我正在使用.UpdateEntryAsync()点击PUT方法 这是我的Put方法C# SaveChangesSync在PUT方法中不起作用,c#,odata,put,C#,Odata,Put,我正在使用ODataController向数据库插入和更新条目 我正在使用.UpdateEntryAsync()点击PUT方法 这是我的Put方法 public async Task<IHttpActionResult> Put([FromODataUri] string key, Delta<KYCBtnDetails> patch) { try { if (!ModelSt
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;
}
public异步任务Put([FromODataUri]字符串键,增量补丁)
{
尝试
{
如果(!ModelState.IsValid)
{
返回请求(ModelState);
}
KYCBtnDetails KYCBtnDetails=等待_KYCDBModel.KYCBtnDetails.FindAsync(键);
if(KYCBtnDetails==null)
{
返回NotFound();
}
patch.Put(KYCBtnDetails);
KYCBtnDetails.id=键;
尝试
{
等待_KYCDBModel.SaveChangesAsync();
}
捕获(例外e)
{
}
更新退货(KYCBtnDetails);
}
捕获(例外情况除外)
{
}
返回null;
}
在wait _KYCDBModel.savechangessync()上,它给我的错误是
“不允许新事务,因为会话中正在运行其他线程”
“在提供程序连接上启动事务时出错。有关详细信息,请参阅内部异常。”
有时运行,有时出错
请帮帮我,
谢谢。按照惯例,以下是控制器操作签名的预期外观:
public异步任务Put([FromODataUri]字符串键,[FromBody]KYCBtnDetails KYCBtnDetails)
{
// ...
}
如果您决定使用补丁
,以下是控制器操作签名的预期外观:
公共异步任务修补程序([FromODataUri]字符串键,[FromBody]增量修补程序)
{
// ...
}
按照惯例,请特别注意
FromBody
属性,以下是Put
控制器操作签名的预期外观:
public异步任务Put([FromODataUri]字符串键,[FromBody]KYCBtnDetails KYCBtnDetails)
{
// ...
}
如果您决定使用补丁
,以下是控制器操作签名的预期外观:
公共异步任务修补程序([FromODataUri]字符串键,[FromBody]增量修补程序)
{
// ...
}
特别注意
FromBody
属性请分享一个。简短回答-\u KYCDBModel
可能注册错误。问题似乎寻求更多详细信息99.99%这是因为在多个请求之间共享\u KYCDBModel
。同意DennisPlease共享。简短回答-\u KYCDBModel
可能注册错误。问题似乎寻求更多细节99.99%这是因为在多个请求之间共享\u KYCDBModel
。同意Dennis的说法