强制linq dbml文件获取数据库值

时间:2012-12-22 15:35:26

标签: linq-to-sql instance

我有两个站点,一个管理站点,我可以编辑数据库中的所有值,以及一个只读取数据库中数据的公共站点。 这两个站点都有相同的dbml文件可以在数据库上运行。 当我插入一辆新车(网站是关于汽车,所以所有值都与汽车相关)和它的数据时,插入的值立即显示在公共网站上...... 当我更新汽车的数据时,数据库中的值立即更改,但公共站点继续显示旧值... 我读到我可以为每个查询使用dbml文件的新实例来强制dbml文件读取数据库中的值...

我在代码文件中使用以下代码执行此操作,其中我将查询...但这不起作用...

 Public Shared AixamReader As FrontstoreAdministrationDataClassesDataContext = New FrontstoreAdministrationDataClassesDataContext

然后我在每个Query中调用AixamReader ......

是否有更好的方法可以强制dbml文件从数据库中获取更新的值?

1 个答案:

答案 0 :(得分:0)

问题的原因不是DBML文件。 DBML不会读取或查询您的数据,它只是生成实际工作的类的基础。

因此,在实际数据库中更新/插入数据对您的DBML文件没有任何影响。

我认为你在这里调用DMBL文件实际上就是DataContext。

是的,如果您使用“旧”DataContext进行查询,同时您的数据由另一个进程更新,则它不会显示在您使用该DataContext执行的查询中。这也称为“陈旧的datacontext ”。

因此,为每个请求使用一个新的DataContext,您的问题就解决了。无论如何,DataContexts非常轻量级,旨在以这种方式使用(每个工作单元都有一个新的)。