Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SaveChangesSync在PUT方法中不起作用_C#_Odata_Put - Fatal编程技术网

C# SaveChangesSync在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

我正在使用ODataController向数据库插入和更新条目 我正在使用.UpdateEntryAsync()点击PUT方法

这是我的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;
        }
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的说法