【问题标题】:caching in asp.net and ado.net在 asp.net 和 ado.net 中缓存
【发布时间】:2010-11-25 19:16:55
【问题描述】:

我在数据库中有一个税表,可能每年更改一次。我们的 asp.net 应用程序具有根据客户的省/州查询数据库的税收计算。我想避免那些往返。有没有办法可以在 Entity Framework 4 中使用缓存?所以我想要基于我的 edmx 中的 tax 表的实体,但是当我对它执行 LINQ 查询时,我不希望它进入数据库,除非缓存已过期。我将如何做到这一点?

我以前没有使用过 asp.net 数据缓存,因此非常感谢有关该概念的一些细节。我已阅读有关应用程序数据缓存的 msdn 文档,但我只是想知道如何以优雅的方式使其与 EF4 一起工作。

【问题讨论】:

    标签: asp.net entity-framework caching ado.net .net-4.0


    【解决方案1】:

    您可以为此使用文件基础缓存。就像您必须在表上创建一个触发器,该触发器将修改特定位置的文件,然后您可以从 asp.net 代码中添加对文件的缓存依赖。因此,除非表中发生任何更改,否则如果文件更改,您必须从缓存中获取数据,然后它将验证缓存并从数据库中获取数据。

    或者

    如果您使用 SQLServe 作为后端,您可以使用 SQL Cache 依赖功能。

    以下是一些可能对您有所帮助的链接。

    http://www.15seconds.com/issue/031229.htm

    http://www.c-sharpcorner.com/uploadfile/vishnuprasad2005/implementingcachinginasp.net11302005072210am/implementingcachinginasp.net.aspx

    这里有一些对实体框架中缓存的支持

    http://blogs.msdn.com/b/efdesign/archive/2008/07/09/transparent-caching-support-in-the-entity-framework.aspx

    http://www.andrewdothay.net/blog/2009/01/28/LINQAndTheSqlCacheDependency.aspx

    【讨论】:

    • 您知道实体框架 4.0 是否支持任何类型的开箱即用缓存?最后两个链接似乎过时了。
    • 不,我不这么认为。如果您想开箱即用,您可以使用 Telerik Open Access orm,但它是付费许可证。
    • 我认为文件库缓存几乎适用于所有场景。
    • 我不是 EF 专家,但我相信 EF 在默认情况下会根据 SQL 分析进行内存缓存——一旦从 db 读取实体,它似乎不会再次被重新读取. social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/…
    猜你喜欢
    • 2011-11-19
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-22
    相关资源
    最近更新 更多