作为标题。无论如何,我没有通过谷歌找到一个。
更新:感谢两个答案的链接;这非常有用,但不是我所追求的 - 我很想知道是否有可能查询由RDBMS支持的memcached(或其他分布式缓存)支持的IRepository。我真的不知道这在实践中如何起作用;我不太了解分布式缓存或LINQ提供程序的内部结构。
我可能会设想类似缓存LINQ提供程序自动生成基于查询的缓存密钥(其中查询可能是Expression>或某种规范模式实现),并且基本上可以在我的应用程序和我的应用程序之间进行填充D B。这听起来有用吗?
答案 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]属性的对象工作正常。