我在ms sql中有一个表a和表B。我写的如下
var request = $http({
method: 'put',
url: urlBase + '/intervieweeDetails/' + empToUpdate.id,
data: empToUpdate
});
return request;
即使我手动为表B编写json并添加到EmptoopDate对象,它也总是抛出异常
系统InvalidOperationException:“附加类型为”IntervieweeServiceJoin的实体。模型。intervieweeExtra'失败,因为同一类型的另一个实体已具有相同的主键值。如果图形中的任何实体具有冲突的键值,则在使用“Attach”方法或将实体状态设置为“Unchanged”或“Modified”时可能会发生这种情况。这可能是因为一些实体是新的,尚未收到数据库生成的键值。在这种情况下,使用“添加”方法或“添加”实体状态来跟踪图形,然后根据需要将非新实体的状态设置为“未更改”或“已修改”
我的http方法是写的吗?获取和添加工作正常,但我根本无法更新值
// PUT: api/intervieweeDetails/5
[ResponseType(typeof(void))]
public IHttpActionResult PutintervieweeDetail(int id, intervieweeDetail intervieweeDetail)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != intervieweeDetail.id)
{
return BadRequest();
}
db.Entry(intervieweeDetail).State = EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
if (!intervieweeDetailExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return StatusCode(HttpStatusCode.NoContent);
}
这个例外被抓住了
db.Entry(intervieweeDetail).State = EntityState.Modified;