gpt4 book ai didi

c# - ASP.Net 缓存问题/疑问。在何处以及如何缓存。 |服装 ADO.Net 代码

转载 作者:行者123 更新时间:2023-11-29 06:14:21 26 4
gpt4 key购买 nike

我正在开发一个 ASP.Net 电子商务应用程序。我使用 ASP.Net Web 表单。当我完成整个应用程序时,我考虑缓存一些数据,以便提高应用程序性能。 (坏主意......我必须从一开始就考虑到这一点)

我不使用内置控件,例如数据网格。我从来不使用 MS-Sql。

我使用 MySql 服务器、我们的数据库和我开发的自定义 UserControls。(自定义ADO.Net代码)

要从我使用的数据库获取数据:

表示 IE 表字段的对象:如果我的表(MyTable)有:

ID , Title, Date

我创建将创建一个像上面这样的对象:

public class MyTable{
public int ID {get;set;}
public string Title {get;set;}
public Datetime Date {get;set;}
}

要管理表中的字段,我使用类似上面的内容:

public class MyTableDatabaseManager{
//Insert a row
public bool insertMyTable(MyTable item){
//...Open a mysql connection , do job , close it.
}
//Update a row
public bool updateMyTable(MyTable item){
//...Open a mysql connection , do job , close it.
}
//Delete a row
public bool deleteMyTable(MyTable item){
//...Open a mysql connection , do job , close it.
}
//Get one row
public MyTable deleteMyTable(int id){
//...Open a mysql connection , do job , close it.
}
//Get some rows or all of them
public List<MyTable> deleteMyTable(int limit,int page,bool Ordering){
//...Open a mysql connection , do job , close it.
}
}

我的问题是:

如何在缓存中存储一​​些数据,这样我就不必一直与数据库通信?

当数据更改时,如何以编程方式重置缓存?

(我知道怎么做,但是我把代码放在哪里:P 当我更改或插入一些值或其他地方时,它可以位于代码隐藏文件中?)

输出缓存对我不起作用,因为大多数提供的数据都是特定于用户的。(约占80%)

非常感谢:)

最佳答案

只需将 key 插入到缓存中, key 就是您的 userId 或您想要更改的任何内容。

Cache.Insert(yourUserIdOrWhateverKey, yourObject); 

http://msdn.microsoft.com/en-us/library/6hbbsfk6%28v=VS.100%29.aspx

注意这个缓存查看器(另请查看上面的 msdn 链接)

http://authors.aspalliance.com/aldotnet/examples/cacheviewer.aspx

要删除您只需调用

Cache.Remove(yourKey);

参见: http://aspdotnetfaq.com/Faq/How-to-clear-your-ASP-NET-applications-Cache.aspx

要检查您的项目是否在缓存中,只需执行

var yourCachedObject = (CustomClass)Cache["YourUserKey"];if(yourCachedObject == null){   //it wasnt in the cache}

关于c# - ASP.Net 缓存问题/疑问。在何处以及如何缓存。 |服装 ADO.Net 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com