关于.net:如何在Linq to SQL中实现缓存?

关于.net:如何在Linq to SQL中实现缓存?

How do you implement caching in Linq to SQL?

我们刚刚开始在DAL工作中使用LINQ to SQL


我的LINQ查询结果缓存可能正好是您要查找的内容。

1
2
3
4
5
var q = FROM c IN context.Customers
        WHERE c.City =="London"
        SELECT NEW { c.Name, c.Phone };

var RESULT = q.Take(10).FromCache();

Pete。


一个快速的答案:使用存储库模式(请参阅Evans的域驱动设计)来获取您的实体。每个存储库都将缓存其将要保存的内容,最好是让每个存储库实例访问一个单例缓存(每个线程/请求将实例化一个新的存储库,但只能有一个缓存)。

以上答案仅适用于一台计算机。为了能够在许多机器上使用它,请使用memcached作为您的缓存解决方案。祝你好运!


就在你的nose下面:

1
List<TableItem> myResult = (FROM t IN db.Table SELECT t).ToList();

现在,只需缓存myResult即可,就像您缓存旧DAL的返回数据一样。


我知道这可能是一个较晚的答案...尽管如此,您可以尝试一下LinqToCache项目。如果可能,它将SqlDepdency挂接到任意LINQ查询上,并通过服务器端查询通知提供活动的缓存无效。这些查询必须是对通知的有效查询,请参阅为通知创建查询。只要使用两部分名称(dbo.Table,而不仅是Table)指定表,大多数Linq-to-sql查询都符合这些限制。


我发现了这篇文章,它提供了一种扩展方法,作为缓存LINQ对象的一种方法。

我一直在努力寻找弱点,现在想为Linq2SQL找到一个好的缓存解决方案,必须承认我确实在努力寻找适合所有人的单一大小...

存储库模式倾向于限制Linq的有用性,因为(必须重新实现IQueryable)缓存必须在Linq语句之外执行。

此外,如果要缓存对象,则延迟加载和对象跟踪都是很大的麻烦,这使得执行更新有些棘手。

任何在高度并行的Web项目中成功解决了这个问题的人,请鸣叫并拯救世界! :)


请参阅本文" ReferenceData"类中的" GetReferenceData"方法:
http://blog.huagati.com/res/index.php/2008/06/23/application-architecture-part-2-data-access-layer-dynamic-linq/

它使用asp.net页面缓存来缓存使用L2S检索的数据。


推荐阅读

    linux查看缓存命令?

    linux查看缓存命令?,系统,地址,网络,信息,第一,情况,命令,电脑,状态,标准,下

    刷新缓存linux命令?

    刷新缓存linux命令?,系统,地址,工作,情况,工具,信息,盘中,状态,数据,命令,Lin

    linux命令查找字符串?

    linux命令查找字符串?,工具,信息,命令,字符串,系统,工作,文件,范本,样式,文

    linux查找权限命令?

    linux查找权限命令?,系统,地址,工作,命令,文件,信息,概念,时间,标准,权限,Lin

    linux查找和替换命令?

    linux查找和替换命令?,工作,系统,数据,字符串,文件,命令,实时,管理,首次,信

    linux命令查找内存?

    linux命令查找内存?,情况,系统,信息,工具,状态,分析,数字,内存,命令,适当,怎

    linux查找文件名命令?

    linux查找文件名命令?,系统,信息,工具,命令,文件,字符串,样式,管道,文本,动

    linux命令查找顺序?

    linux命令查找顺序?,时间,地址,工作,命令,系统,文件,本行,灵活,标准,信息,Lin

    linux里面查找命令?

    linux里面查找命令?,系统,数据,信息,命令,工作,情况,名称,标准,时间,灵活,lin

    linux查找行命令行?

    linux查找行命令行?,系统,首页,命令,文件,终端,工具,环境,信息,名称,百度,lin

    查找文本的linux命令?

    查找文本的linux命令?,工具,命令,信息,系统,标准,文件,终端,情况,内容,字符

    linux查找名字命令?

    linux查找名字命令?,系统,地址,密码,工作,名字,命令,信息,标准,灵活,目录,lin

    linux查找命令的文职?

    linux查找命令的文职?,标准,位置,系统,名称,命令,文件,文件名,灵活,名字,目

    linux的查找拷贝命令?

    linux的查找拷贝命令?,系统,命令,文件,目录,情况,预期,源文件,选项,语法,参

    linux历史命令查找?

    linux历史命令查找?,时间,系统,地址,信息,命令,数字,环境,代码,历史,终端,lin

    如何在linux编译命令?

    如何在linux编译命令?,代码,工具,基础,环境,百度,源程序,语言,文件,终端,编

    linux命令模式查找?

    linux命令模式查找?,信息,工作,系统,地址,命令,管理,文件,目录,字符串,模式,l

    linux按符号查找命令?

    linux按符号查找命令?,系统,命令,字符串,灵活,工具,文件,文件名,选项,参数,

    linux命令查找单词?

    linux命令查找单词?,工作,工具,系统,命令,信息,管理,文件,灵活,时间,代码,Lin

    linux根目录查找命令?

    linux根目录查找命令?,系统,工作,情况,信息,地址,命令,目录,文件,标准,设备,l