有人知道有人在使用LINQ to Memcached提供程序吗?

有人知道有人在使用LINQ to Memcached提供程序吗?,linq,caching,memcached,Linq,Caching,Memcached,作为标题。无论如何,我没有通过谷歌找到 更新:感谢来自两个答案的链接;这是非常有用的,但不是我想要的-我很好奇是否有可能查询一个由memcached(或其他分布式缓存)支持、由RDBMS支持的IRepository。我真的不知道这在实践中如何起作用;我不太了解分布式缓存或LINQ提供程序的内部结构 我可能正在设想一种类似缓存LINQ提供者的东西,它基于查询自动生成缓存密钥(其中查询可以是Expression>或某种规范模式实现),并且基本上可以在我的应用程序和数据库之间实现。这听起来有用吗?如果

作为标题。无论如何,我没有通过谷歌找到

更新:感谢来自两个答案的链接;这是非常有用的,但不是我想要的-我很好奇是否有可能查询一个由memcached(或其他分布式缓存)支持、由RDBMS支持的IRepository。我真的不知道这在实践中如何起作用;我不太了解分布式缓存或LINQ提供程序的内部结构


我可能正在设想一种类似缓存LINQ提供者的东西,它基于查询自动生成缓存密钥(其中查询可以是Expression>或某种规范模式实现),并且基本上可以在我的应用程序和数据库之间实现。这听起来有用吗?

如果您不介意在它们之间切换,您可以使用来查询要用作缓存的实体。

我不知道如果这是您想要的,您可以签入此项。在这里,您可以查询Memcached以及查询linq to对象

   public static IEnumerable<User> GetAllUsers()  
   {  
       // Retrieve from cache if it exists, otherwise run the query  
       return (from u in ctx.Users select u).CachedQuery("allusers");  
   }  
公共静态IEnumerable GetAllUsers()
{  
//从缓存中检索(如果存在),否则运行查询
返回(来自ctx中的u。用户选择u)。CachedQuery(“allusers”);
}  
这是你想要的吗

这是源代码

public static IEnumerable<T> CachedQuery<T>
        (this IQueryable<T> query, string key) where T : class
{
    if (cache.KeyExists(key))
    {
        return (IEnumerable<T>)cache.Get(key);
    }
    else
    {
        IEnumerable<T> items = query.ToList();
        cache.Set(key, items);
        return items;
    }
}
公共静态IEnumerable CachedQuery
(此IQueryable查询,字符串键)其中T:class
{
if(cache.KeyExists(key))
{
return(IEnumerable)cache.Get(key);
}
其他的
{
IEnumerable items=query.ToList();
cache.Set(键、项);
退货项目;
}
}

因为我不知道memcached是什么,我在谷歌上搜索了一下,找到了以下链接:


它的底部有一个关于在memcached上使用LINQ查询的部分。

我在使用LINQ for memcached时也遇到了一些问题。但是您应该检查LINQDBML的序列化,无论它是否是单向的


您可能有幸获得此解决方案,值得尝试。对我来说,我仍然对linq有问题,但是其他具有[Serilizable]属性的对象可以正常工作。

这取决于您是否已经想使用NHibernate;)我确实想这么做,但不幸的是,在“在现实生活中”体验到Linq2Sql的缺点之前,目前还不能选择它。这听起来是一个很有价值的项目。