C# 什么是最好的NHibernate缓存二级提供程序?

C# 什么是最好的NHibernate缓存二级提供程序?,c#,.net,caching,nhibernate,cpu-cache,C#,.net,Caching,Nhibernate,Cpu Cache,我见过很多。NCache、Velocity等等,但我还没有找到一个表来比较它们 考虑到以下标准,最好的选择是什么: 容易理解 最近正在维护 是免费的或有足够好的免费版本 工作 我不能说什么是最好的,什么是最坏的,但如果有帮助的话,我会把我在NCache方面的经验加进去 免责声明:NHibernate和我有一些分歧,我们自此分道扬镳:) 好人 演出很棒 支持非常好,维护得很好(我是在谈论6个月前的状态) 它有一个免费版本(注意事项如下) 它尽可能地工作,但我对基本级别2缓存提供程序实现有问题……

我见过很多。NCache、Velocity等等,但我还没有找到一个表来比较它们

考虑到以下标准,最好的选择是什么:

  • 容易理解
  • 最近正在维护
  • 是免费的或有足够好的免费版本
  • 工作

  • 我不能说什么是最好的,什么是最坏的,但如果有帮助的话,我会把我在NCache方面的经验加进去

    免责声明:NHibernate和我有一些分歧,我们自此分道扬镳:)

    好人
    • 演出很棒
    • 支持非常好,维护得很好(我是在谈论6个月前的状态)
    • 它有一个免费版本(注意事项如下)
    • 它尽可能地工作,但我对基本级别2缓存提供程序实现有问题……但这是HQL的NHibernate端的问题,而不是NCache端的问题
    坏()
    • 免费版本有它的局限性,它们在战略上是毫无疑问的,但对于我们的项目,最终我们无法使用免费版本,因为一些关键功能不可用。以下限制适用于免费版。
      • 不包括基于键的依赖项
      • 不包括任何数据库依赖项
      • 没有64位版本

    对我来说,这是两个不同项目的症结所在……但是除此之外,没有问题,我对安装和配置的简单性感到满意。如果以上不是您的关键点/要求,我建议您试一试。我只花了不到10分钟的时间就安装了一台服务器并作为我们的二级缓存运行。

    感谢您的关注。让我问你一个问题:我在缓存中有一个类型为a的对象a',它有一个类型为B的对象集合B。如果我获取不属于B的B'',并将其更改为现在应该属于B,那么a'.Bs.Count是否会更改?注意“A”在缓存中。@AndréPena:是的,如果您在
    的正下方都有
    ,它会。如果您有a的本地副本,并且没有重新获取a,则不会,因为您正在处理一个单独的副本…但是如果您在添加B后的任何点获取a(或添加到本地a),则应该有一个准确的计数。我有机会使用NCache,这很好。尼克的发现非常正确。我只想补充一点,虽然基于密钥的依赖项、数据库依赖项和无64位版本都没有express edition,但它都出现在Enterprise和professional edition中。作为参考,请阅读,我正在努力决定是否nhibernate是合适的。你介意分享你的不同意见吗?谢谢。@dan_l-自从这个答案以来,很多事情都发生了变化,所以我的问题可能不再相关了……但是配置部分(您需要一个生成器来为任何缩减的项目创建XML……不确定这是否仍然正确)也没有性能,Linq2SQL也是如此,要将数据转换为对象,需要付出巨大的代价。例如:现在正在处理堆栈溢出问题,我们使用Dapper进行了所有新的开发,这是因为我们对直接SQL(用于调优等)的热爱,以及一个非常简洁的方法调用,可以尽快地获取数据。