我有两个值在数据库中,它定义了我应用程序中太多东西的行为,至少在不久的将来不会改变。创建一个静态变量并加载我的应用程序的Global.asax
中的值是最好的决定。建议将数据库中的数据从缓存加载到所有应用程序中
1
A
回答
1
一般规则是,当您知道您的值/数据将在某段时间后过期或需要更改时使用缓存,否则使用静态变量。我发现了一个类似的讨论HttpRuntime.Cache[] vs Application[]
还检查了ASP.NET Caching: Techniques and Best Practices
0
是的,你可以在一个静态变量缓存。但是,如果他们现在不需要改变并且保持不变,那么为什么不将它们定义为常量或web.config?
0
我建议建立一个静态类,其性质会从数据库一旦启动了您的应用程序的设置它的价值你的这些常数设置。
每当我有存储在数据库中的“系统”设置时,我都会做同样的事情。我将它们作为属性保存在静态类中,并始终访问它们。我还使用相同的技术来处理小型表格(即项目组)的内容,这些小型表格不经常更改,但为了减少数据库流量而使用了很多。我创建只读集合并访问它们,而不是始终访问数据库。
但是任何事情都是最适合你的事情,只要它干净易维护。
0
我个人使用依赖注入为我的MVC网站(ninject是我喜欢的)。这使您可以将变量定义为.InSingletonScope,这意味着您不需要在应用程序中留下令人讨厌的静态内容。然后,我在第一次请求时从数据库加载数值,并将其存储在本地变量中,并且它非常整齐。
即我这样做:
public class CachedFooProperty : IFooProperty
{
public CachedFooProperty(IRepository<Foo> fooRepo)
{
Foo = fooRepo.GetFoo();
}
public Foo Foo{get;private set;}
}
然后将它绑定这样的:
Bind<IFooProperty>().To<CachedFooProperty>().InSingletonScope();
约做事这种方式的好处是它很容易打开和关闭缓存通过简单地改变绑定。你也可以很简单地改变这个基于web.config的配置方法,而不用改变你使用设置的每个地方。
相关问题
- 1. 将所有Neo4J数据库加载到内存中
- 2. 从缓存中加载UITableView数据Parse
- 3. 从C#数据库应用程序加载数据时出错
- 4. 将数据存储在Ionic应用程序的缓存中
- 5. 将SQLite数据库加载到Android应用程序的策略
- 6. 加载缓存过载数据库
- 7. 缓存在重新加载react-native应用程序的数据
- 8. 将数据从数据库表加载到共享内存
- 9. 数据库如何加载到应用程序中?
- 10. 将Java数据库加载到Java Swing应用程序
- 11. 应用程序没有从firebase数据库中检索数据
- 12. 在iphone应用程序中访问数据库所需的建议
- 13. 我的应用程序不会将数据保存到数据库中
- 14. 如何将数据从数据库加载到DataGridView中?
- 15. 将数据从SQLite数据库加载到ListView中
- 16. 从shell界面将数据加载到mysql数据库中
- 17. 从AppEngine将数据从sqlite数据库加载到GAE数据存储
- 18. 在Rails应用程序中创建一个子数据库,将数据存储在子数据库中
- 19. 将数据从远程机器加载到Hive数据库
- 20. 将应用程序进度存储到数据库中
- 21. 用表中的数据创建应用程序数据库
- 22. 在应用程序服务器中缓存数据库查询
- 23. 将Excel数据加载到Linux/wxWidgets C++应用程序中?
- 24. 将数据加载到Web应用程序中
- 25. 当应用程序启动时将数据库中的所有数据传递到数组中
- 26. 如何在加载应用程序时直接将数据从sqlite3数据库加载到UITable?
- 27. 将数据从php服务器加载到android应用程序
- 28. Android应用程序不会将数据保存到WAMP数据库中
- 29. Windows Phone 7应用程序,将csv数据加载到应用程序中
- 30. 如何将数据库和Nsxmlparser添加到应用程序中?