MVC将更改与现有值进行比较

时间:2016-09-19 13:28:12

标签: c# asp.net-mvc-4

我在尝试检查作为更新的一部分发布的值时,目前在数据库中当前保存的内容时遇到了一些问题。

目前我正在做的是将现有记录读入一个新变量,以及从该帖子传入的变量,并检查该变量中的值。但是我注意到,只要我从数据库中读取记录,从帖子传入的值就会重置为之前的值。

我有一种感觉,原因是发布的记录和检索到的记录都具有相同的主键值,因此代码然后覆盖新值,因为不能有两个具有相同主要值的不同对象关键在记忆中。虽然这只是猜测。

有人可以帮我解决这个问题,并可能帮我找到解决这个问题的方法吗?

修改

我的代码如下。这是主要代码,一旦我检索到“原始记录”,“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的对象(实际的),我对数据库的更新语句开始失败错误有点描述性,但我完全记不住了。

0 个答案:

没有答案