【发布时间】:2008-12-21 15:52:07
【问题描述】:
我想用这个模式:
SqlCommand com = new SqlCommand(sql, con);
com.CommandType = CommandType.StoredProcedure;//um
com.CommandTimeout = 120;
//com.Connection = con; //EDIT: per suggestions below
SqlParameter par;
par = new SqlParameter("@id", SqlDbType.Int);
par.Direction = ParameterDirection.Input;
com.Parameters.Add(par);
HttpContext.Current.Cache["mycommand"] = com;
显然我不想遇到奇怪的问题,比如人 A 从缓存中检索它,更新 param1,人 2 从缓存中获取它并更新 param2,每个用户运行命令时混合了两者。
克隆从缓存中取出的命令可能比从头创建一个新命令更昂贵。
ASP.NET 缓存的线程安全性如何?我是否错过了任何其他潜在的陷阱?尽管存在线程问题,这种技术是否适用于无参数命令?
澄清:如果我想比喻性地朝自己的脚开枪,我该如何瞄准?有没有办法锁定对缓存中对象的访问以便序列化访问?
【问题讨论】:
标签: c# .net asp.net vb.net ado.net