Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to sql 强制linq dbml文件获取数据库值_Linq To Sql_Instance - Fatal编程技术网

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

Linq to sql 强制linq dbml文件获取数据库值,linq-to-sql,instance,Linq To Sql,Instance,我有两个站点,一个是管理站点,可以编辑数据库中的所有值,另一个是公共站点,只能从数据库中读取数据。 两个站点都有相同的dbml文件来处理数据库。 当我插入一辆新车(站点是关于汽车的,所以所有值都与汽车相关)及其数据时,插入的值立即显示在公共站点上。。。 当我更新汽车数据时,数据库中的值会立即更改,但公共站点会一直显示旧值。。。 我读到我可以为每个查询使用一个新的dbml文件实例来强制dbml文件读取数据库中的值 我在一个代码文件中使用以下代码执行此操作,我将所有查询放在该文件中。。。但这不起作用

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

我在一个代码文件中使用以下代码执行此操作,我将所有查询放在该文件中。。。但这不起作用

 Public Shared AixamReader As FrontstoreAdministrationDataClassesDataContext = New FrontstoreAdministrationDataClassesDataContext
然后我在每个查询中调用AixamReader


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

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

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

我认为您在这里所称的DMBL文件实际上是DataContext

是的,如果您使用“旧”DataContext进行查询,同时您的数据由另一个进程更新,那么它将不会显示在您使用该DataContext进行的查询中。这也称为“过时数据上下文”


因此,为每个请求使用一个新的DataContext,您的问题就解决了。无论如何,DataContext是非常轻量级的,并且设计成这样使用(每个工作单元使用一个新的)。

我已经在其他评论中读到了这一点。但很明显,我没有正确理解它,因为我认为通过我的帖子中显示的代码,每次我都会得到一个新的datacontext实例。那么,在哪里以及如何调用datacontext的新实例呢?Thx的解释。嗯,它是公开和共享的,所以你很可能是在重复使用它?我总是有一个局部变量,周围有一个Using(),但我是一个C#person