同时LINQ数据检索问题

时间:2010-11-23 01:21:55

标签: sql linq

我遇到了一个以前从未发生过的奇怪问题。

在登录代码中:

var sqlLogin = db.LoginRetrieve(loginID, archived).SingleOrDefault();

//(db是linq数据上下文)

- 问题:

如果两个用户同时登录,则此行代码将引发异常,即“结果中不存在所需的列'UserLoginID'。” 但是,如果单个用户登录或两个用户没有同时单击该按钮,则没有例外。

有人可以分享一些灯吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我怀疑您的DataContext是在请求之间共享的。

不要那样做。

您应该为每个请求创建一个单独的DataContext 否则,你会得到像这样的讨厌的线程问题。 (DataContext不是线程安全的)


通常,在请求之间共享对象时应该非常小心(例如,static或应用程序/会话状态)。
除非您另有明确说明,否则您应该假定该对象不是线程安全的,无法共享。