dbcontext正在检索旧数据而不是更新

时间:2014-06-25 08:18:15

标签: c# entity-framework asp.net-mvc-3 asp.net-mvc-4 dbcontext

我在我的控制器中初始化dbContext,如下所示:

public class BaseController : Controller
{
    protected KContext db;

    public BaseController()
    {
        db = new KContext();
    }
}

我通常在我的控制器中添加,编辑,删除东西,我还有一个名为serviceChecker的类,它继承了注册表(来自FluentScheduler),我在那里初始化了另一个dbcontext,如下所示:

public class ServiceChecker : Registry
{
    KContext db;
    public ServiceChecker()
    {
        db = new KContext();
    }
}

我检查了这个类中的一些表,并编辑了一些也从我的控制器更新的实体。现在我遇到的问题是,在我更改实体后,让我们将{00}} endDate7/11/2014称为7/11/2016字段servicechecker实体很好但是当endDate触发检查功能(每60秒)时,它必须更新该实体的另一个字段,该字段发生正常但它也将7/11/2014更改回{{1}} (第一次编辑前的旧值),可能是什么原因?

1 个答案:

答案 0 :(得分:0)

更新实体后获取旧值的可能原因是您没有调用SaveChanges()方法来保存实体更改,而您正在ServiceChecker类中创建一个新的上下文对象,它没有任何想法关于您使用先前(另一个)上下文对象在实体中所做的更改。

在实体中进行更改后,您可以调用SaveChanges()方法。

注意:使用公共上下文对象执行所有操作是一种很好的做法