有没有人知道在LINQ-to-Memcached提供程序上工作的人?

时间:2008-10-27 21:33:13

标签: linq caching memcached

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

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

我可能会设想类似缓存LINQ提供程序自动生成基于查询的缓存密钥(其中查询可能是Expression>或某种规范模式实现),并且基本上可以在我的应用程序和我的应用程序之间进行填充D B。这听起来有用吗?

4 个答案:

答案 0 :(得分:1)

如果您不介意在它们之间抛出NHibernate,则可以使用LINQ to NHibernate查询can be set使用memcached作为缓存的实体。

答案 1 :(得分:1)

如果这是你想要的,你可以查看website。在那里,您可以查询Memcached以及查询linq到object。

   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");  
   }  

这是你想要的吗?

这是源代码

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;
    }
}

答案 2 :(得分:1)

因为我不知道memcached是什么,我用Google搜索并找到了这个链接:

http://latebound.blogspot.com/2008/10/using-memcached-from-c.html

在memcached上使用LINQ查询时,底部附近有一个部分。

答案 3 :(得分:0)

我也遇到了linq for memcached的一些问题。但是你应该查看你的linq DBML的序列化,无论它是否是单向的。

你可能对这个解决方案有好运,值得一试。对我来说,我对linq有疑问,但其他具有[Serilizable]属性的对象工作正常。