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