通过MVC + EF闯入并试图专注于以正确的方式做事。现在我正在寻找添加下拉到表单,但我想避免每次页面加载时击中数据库,所以我想将数据存储在应用程序级别。我想创建一个应用程序级变量不是最好的方法。我已经阅读过有关使用缓存和静态实用程序的功能,但令人惊讶的是,没有任何声音非常明确。 (静态类不好的单元测试,缓存坏在MVC中保持数据库存储的查找数据在应用程序级别的最佳实践
所以,我有两个场景,我很好奇,我不知道,如果方法将两种。
1之间的差异)的基本查询,让我们说五十个州。小,定义,永远不会改变。在应用程序启动时加载(不寻找一个硬编码的解决方案,但从数据库中检索)
2)一个查询,将很少改变,只有通过类似管理员的屏幕。比方说,您的产品正在出售的城市/商店。因此数据将被存储在模型中 ,但是除非有人通过应用程序进行更改,否则数据将相对静态。因此,每次我需要填充下拉列表框时,都不打算访问数据库。
好像基本的东西,但它基本上是相同的,因为这话题,从未回答:
Is it good to use a static EF object context in an MVC application for better perf?
任何帮助表示赞赏。
从技术上讲,您可以将您的POCO类作为您的数据访问层中缓存机制的接口。然后,你可以在你的MVC应用中实现缓存并实现接口并将它传递到数据访问层,如下所示:dataLayer.LoadStates(myCache)其中ICache将公开一个属性或方法,让你填充状态列表。 – 2012-02-23 02:23:06