我在尝试检查作为更新的一部分发布的值时,目前在数据库中当前保存的内容时遇到了一些问题。
目前我正在做的是将现有记录读入一个新变量,以及从该帖子传入的变量,并检查该变量中的值。但是我注意到,只要我从数据库中读取记录,从帖子传入的值就会重置为之前的值。
我有一种感觉,原因是发布的记录和检索到的记录都具有相同的主键值,因此代码然后覆盖新值,因为不能有两个具有相同主要值的不同对象关键在记忆中。虽然这只是猜测。
有人可以帮我解决这个问题,并可能帮我找到解决这个问题的方法吗?
修改
我的代码如下。这是主要代码,一旦我检索到“原始记录”,“faultrecord”中的值就会恢复到以前的状态
[HttpPost]
public ActionResult Edit(fault faultrecord)
{
fault originalRecord = _faultRepository.Read(faultrecord.ID); /*here is where it gets reverted*/
if (faultrecord != originalRecord)
{
/*perform actions and update record*/
}
}
以下代码是我用来从数据库中读取记录的代码:
public fault Read(int id)
{
var result = ITJobEntities.faults.Where(t => t.ID == id);
if (result.Any())
{
return result.FirstOrDefault();
}
return null;
}
我认为它与主键有关的唯一原因是因为当我在“originalRecord”检索中添加时,由于存在多个具有相同ID的对象(实际的),我对数据库的更新语句开始失败错误有点描述性,但我完全记不住了。