【问题标题】:Caching in .Net Windows application.Net Windows 应用程序中的缓存
【发布时间】:2013-01-09 06:20:35
【问题描述】:

我在一个基于 Windows 的应用程序中工作,该应用程序对每笔交易都使用主数据。此主数据通常不会更改,但在某些情况下可以更改。我将这些数据提取到缓存或DataSet 一次并将其用于将来的事务,但如果主表中的数据发生更改,我不想使用时间从数据库中提取数据。

我想创建一个对 DataTable 的依赖项,这样如果数据仅在那时发生更改,它就会从数据库中获取信息。由于它是一个基于 Windows 的应用程序,并且我没有在 Windows 应用程序中找到任何对缓存的支持,我该如何通过缓存或 DataSet 来做到这一点?

【问题讨论】:

  • 伙计,DataTableDataSet很少需要。你为什么不给自己找一个好的 ORM 来为你做这些事情呢?大多数常见的都支持一级和二级缓存。
  • 你的服务器真的那么慢吗?即太慢以至于您不能使用数据库来读取和更新数据?如果是这样的话,那就是大错特错了。在另一种情况下,您正在进行过早的优化或使用过大的结果集。

标签: c# .net caching


【解决方案1】:

“因为它是一个基于 Windows 的应用程序,我没有在 Windows 应用程序中找到任何对缓存的支持”

这是错误的。

您可以在 Framework 4.0 中获取缓存类。它可以是基于 Windows 的应用程序或基于 Web 的。这是docs

例子:

 using System.Runtime.Caching;

 private static MemoryCache cache = MemoryCache.Default;

【讨论】:

    【解决方案2】:

    你不能使用Enterprise Library Caching block吗?

    【讨论】:

    • 2005 年调用...他们想要他们的链接回来:)
    • @David - 一旦他们将 System.Runtime.Caching 集成到 .NET 4.0 中,他们就弃用了企业缓存块。根据 MSF,“缓存应用程序块功能内置于 .NET Framework 4.0;因此企业库缓存应用程序块将在 5.0 之后的版本中弃用。您应该考虑使用 .NET 4.0 System.Runtime.Caching 类而不是缓存应用程序块在未来的发展中。”见msdn.microsoft.com/en-us/library/ff664753(v=pandp.50).aspx
    猜你喜欢
    • 2011-07-06
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-04
    相关资源
    最近更新 更多