【发布时间】:2013-06-18 15:49:53
【问题描述】:
我有一个使用实体框架 DBContext 来执行 CRUD 操作的 Web API。我的问题如下:
最初,我使用了我的 DBContext 的静态实例。但是,使用这种格式,当我再次查询数据集时,不会显示对数据库表的任何更改;数据已过时。
作为临时修复,在所有公共类函数的开头,我创建了一个新的 DBContext 对象并调用该对象以从数据库中获取数据。由于许多原因,这不是最好的主意。但是当我使用这种技术时,数据不再是陈旧的。
如何适当地利用 DBContext,以便多个用户始终可以从请求中看到当前数据库数据?我应该将 DBContext 作为我的类中的一个字段并在类的构造函数中实例化它吗?在这种情况下,每个类是否应该有自己的 DBContext 对象?
是否有适当使用 DBContext 的最佳实践?我担心向我的用户推送过时的数据和不准确的结果。
【问题讨论】:
-
当您对数据库进行更改时,您是在同一个静态 DbContext 中还是以其他方式进行更改?
-
我通过调用 Web API 检查表中的值。 Web API 返回数据。例如,该值可能是 451。然后我通过使用 SSMS 直接在表中键入一个新值来更改数据库。当我再次运行 API 调用时,将数据输入数据库后,API 返回旧值而不是我刚刚输入的新值。当我使用静态 DBContext 时会发生这种情况。如果我每次调用 API 时都创建一个新的 DBContext,那么 API 会返回我在表中键入的新数据。
标签: c# asp.net-mvc-4