C# “错误”;数据库操作预期影响1行,但实际影响0行。数据可能已被修改或删除。”;
我有一个模型,它有100多个属性和一个主键(标识),我使用它通过Http Post with body使用EF6插入或更新数据库 我总是出错 数据库操作预期影响1行,但实际影响0行。自加载实体后,数据可能已被修改或删除 无论何时,从控制器传递到要更新的模型的值与数据库中的值不同,但如果每列中的数据与模型中的数据相同,则使用下面的命令可以完美地保存,而不会出现问题 由于模型属性很多,我不想在调用C# “错误”;数据库操作预期影响1行,但实际影响0行。数据可能已被修改或删除。”;,c#,asp.net-core,asp.net-web-api,entity-framework-6,C#,Asp.net Core,Asp.net Web Api,Entity Framework 6,我有一个模型,它有100多个属性和一个主键(标识),我使用它通过Http Post with body使用EF6插入或更新数据库 我总是出错 数据库操作预期影响1行,但实际影响0行。自加载实体后,数据可能已被修改或删除 无论何时,从控制器传递到要更新的模型的值与数据库中的值不同,但如果每列中的数据与模型中的数据相同,则使用下面的命令可以完美地保存,而不会出现问题 由于模型属性很多,我不想在调用SaveChanges()方法之前手动为每个属性赋值,即使这样做是可行的 这是我的控制器 [HttpPu
SaveChanges()
方法之前手动为每个属性赋值,即使这样做是可行的
这是我的控制器
[HttpPut("{autoid:int}")]
public async Task<ActionResult<Store>> UpdateStore(int autoid, [FromBodyOrDefault] Store store)
{
try
{
if (autoid != store.AutoId)
{
ModelState.AddModelError("ID", "Auto ID mismatch");
return BadRequest(ModelState);
}
var response = await Store.StoreExists(store.AutoId);
if (response != true)
{
ModelState.AddModelError("AutoId", $"Store with recordid:{autoid} not found");
return NotFound(ModelState);
}
await Store.UpdateStore(store);
return store;
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status500InternalServerError, ex.InnerException.ToString());
}
}
[HttpPut(“{autoid:int}”)]
公共异步任务更新存储(int autoid,[FromBodyOrDefault]存储)
{
尝试
{
if(autoid!=store.autoid)
{
AddModelError(“ID”,“自动ID不匹配”);
返回请求(ModelState);
}
var response=wait Store.StoreExists(Store.AutoId);
如果(响应!=true)
{
AddModelError(“AutoId”,未找到记录ID为{AutoId}的$”存储);
返回NotFound(ModelState);
}
等待存储。更新存储(存储);
退货店;
}
捕获(例外情况除外)
{
返回状态码(StatusCodes.Status500InternalServerError,ex.InnerException.ToString());
}
}
这是UpdateStore方法
public async Task<int> UpdateStore(Store storeinfo)
{
try
{
_context.Entry(storeinfo).State = EntityState.Modified;
return await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException ex)
{
return 1;
}
}
公共异步任务更新存储(存储信息)
{
尝试
{
_context.Entry(storeinfo).State=EntityState.Modified;
return wait_context.saveChangesSync();
}
捕获(DbUpdateConcurrencyException ex)
{
返回1;
}
}
如何调用UpdateStore
方法?如何从控制器设置模型的属性值?我在更改表的主键时遇到了这个问题,但没有在代码中更新表的映射。如何调用UpdateStore
方法?如何从控制器设置模型的属性值?当我更改表上的主键但没有在代码中更新表的映射时,我遇到了这个问题。