2010-06-28 61 views
1

我有一个使用LINQ到SQL的Web应用程序。它有一个非常奇怪的问题,LINQ命令检索应该由另一个在另一个线程中运行的完全不同的查询返回的数据。这可能是什么原因?LINQ-to-SQL从不同的查询中检索数据!

具体来说,用户从他的机器访问应用程序,打开某个页面。与此同时,另一个用户从他的(不同的)机器访问不同的页面。其中一个查询会引发异常,而另一个则会返回第一个数据,该数据来自非常不同的表格!

只要我们强调与这两个用户的应用程序,情况下总是可重复的。我已经检查过,但没有看到任何类型的共享变量。还有什么问题可以解决?我应该寻找什么?

您的帮助真的很感谢。

回答

1

声音像连接正在被重用。确保不要缓存这些内容,并且始终正确地创建和释放它们,例如在this sample中。

+0

这就是我一直在试图调查最多的一天,却徒劳无功。我甚至试图用每个请求(对于其中一个页面)创建一个新的'DataContext',但是这没有解决问题。你有什么建议看看吗? – 2010-06-28 15:39:33

+0

您不想在每次调用时重新创建'DataContext',因为这应该是一个“单身人士”。也就是说,你用什么代码连接到数据库? – Lucero 2010-06-28 15:54:24

+0

用于注入的'DataContext'(使用Unity),但我只是为了测试目的而改变它。要连接到数据库,我只需创建一个带有'SqlConnection'的'DataContext',它接受连接字符串。但是,应用程序的另一个(较旧的)部分直接使用ADO.NET,每次创建(和关闭)一个新连接。 – 2010-06-29 09:03:26

0

你确定这不是一个会议问题,而不是一个linq问题?从一个asp.net会话请求的数据传递给另一个会听起来像是在那里混合了一些东西。