博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
问几个 User.GetUser()的问题。各位高手来帮忙回答一下
阅读量:7196 次
发布时间:2019-06-29

本文共 1490 字,大约阅读时间需要 4 分钟。

原文:
Q:

在项目的 AspNetForums.Users类中的这个方法:

public static User GetUser (int userID, string username, bool isOnline, bool isCacheable, bool autoCreateUser )

-----------------------------------------------------------

问题一:
如下代码段:

 
if
(HttpRuntime.Cache[cacheKey]
==
null
) HttpRuntime.Cache[cacheKey]
=
new
Hashtable();

这里Cache的用法是直接赋值一个Hashtable,这样这个缓存项的 “依赖项、缓存过期时间 ”等等一些参数的值是什么?即这个缓存项是在何时过期?
-----------------------------------------------------------
问题二:
方法最后代码段:

// Create a CachedUser struct     //     cachedUser.User = user;     cachedUser.Created = DateTime.Now;     // Add user to lookup table     //     userLookupTable[userKey] = cachedUser;

这里每查看一个未缓存的User就向Cache的Hashtable里插入一个键/值对,也就是缓存了这个User对象,那么当有很多用户资料被一一查看后这个缓存的内容是不是太大了?很耗费内存吧?而且有些用户资料可能在查看一遍后再也不会有人来查看,那么放在这里不是很浪费内存么?
-----------------------------------------------------------
另:

在数据库查询的时候(非存储过程),用Command的Parameters.Add()方法添加参数的时候

在原SQL语句中保留参数位置的语法是什么?我看到有些地方用“WHERE UserName = ? ”而有些地方那个是 “WHERE UserName = @UserName”,或者还有其他的写法?
而我在Add();的时候 parameterName 的值都是 @UserName,到底应该怎么用?
// 希望各位高手能给与解答,谢谢
A:
问题一:
Cache[cacheKey] = object等效于Cache.Insert(cacheKey, object),即等效于:
Cache.Insert(cacheKey, object, null, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.Normal)
所以,这个缓存项不会过期(NoAbsoluteExpiration)。
问题二:
是会占用内存,这是性能上的取舍问题。(注:User对象并不很大。)
问题三:
两种方法都可以。前者只按参数的顺序进行替换,而后者会按参数变量名进行替换。更具体的细节请查阅ADO.NET的相关资料。

 本文转自浪子博客园博客,原文链接:http://www.cnblogs.com/walkingboy/archive/2005/04/14/137721.html,如需转载请自行联系原作者

你可能感兴趣的文章
window对象的重要属性
查看>>
[Android学习笔记七] 设备管理服务示例开发
查看>>
mysql status 详细解释
查看>>
Intellij IDEA工具
查看>>
类加载器
查看>>
一次线上问题排查所引发的思考
查看>>
OSPF之邻居关系、邻接关系
查看>>
webmagic 练习之 保存使用上一级信息
查看>>
C/C++回调函数简要介绍
查看>>
8、MySLQ存储过程
查看>>
MRBS会议管理系统配置简要说明
查看>>
exchange 2010 高可用性
查看>>
2.2 4bit寄存器实现与商业级触发器
查看>>
无需过分关注Created_tmp_disk_tables
查看>>
[问题]安装express,已经加了-g,还是找不到express命令
查看>>
px与rem关系及转换
查看>>
微软邮件系统Exchange 2013系列(二)先决条件
查看>>
硬驱丢失
查看>>
从n个自然数中任取r个数的所有组合(递归算法)
查看>>
数据库事务处理差异:可提交读和重复读区别
查看>>