我遇到了一个以前从未发生过的奇怪问题。
在登录代码中:
var sqlLogin = db.LoginRetrieve(loginID, archived).SingleOrDefault();
//(db是linq数据上下文)
- 问题:
如果两个用户同时登录,则此行代码将引发异常,即“结果中不存在所需的列'UserLoginID'。” 但是,如果单个用户登录或两个用户没有同时单击该按钮,则没有例外。
有人可以分享一些灯吗?提前谢谢。
韩
答案 0 :(得分:1)
我怀疑您的DataContext是在请求之间共享的。
不要那样做。
您应该为每个请求创建一个单独的DataContext 否则,你会得到像这样的讨厌的线程问题。 (DataContext不是线程安全的)
通常,在请求之间共享对象时应该非常小心(例如,static
或应用程序/会话状态)。
除非您另有明确说明,否则您应该假定该对象不是线程安全的,无法共享。