2009-09-18 35 views
1

我有一个包含一组论坛的ASP.Net MVC网络应用程序。为了保持灵活的安全性,我选择了访问控制列表的安全风格。如何安全地将LINQ缓存到SQL结果?

但是,每次有人查看论坛索引时,这都会变得非常繁重。

我正在使用EnterpriseLibrary.Caching功能来缓存网站上的各种非LINQ项目。 (BB代码的解释器,皮肤,等)

我的问题是这样的:

什么是缓存LINQ结果最安全和最优雅的方式?

本质上,我想保留在内存中的每个论坛ACL的副本,以防止数据库命中。这样,对于每个碰到该网站的人,我最多只能获取组会员信息。

总而言之,我真的在寻找一种有效缓存大量LINQ数据的方法,而不仅仅是这些特定的行。

回答

1

如果你已经有了一个缓存系统,对于一般对象,所有你需要的应该是这样的:

var whatever = linkQuery.ToList(); 
+0

不就是防止垃圾回收器调用的DataContext的析构函数?我正确地处理了它,但是如果我不需要,我不想让它四处闲逛。 – 2009-09-18 03:22:33

+0

它不应该阻止datacontext的垃圾回收。实体对象没有引用回DC。 (DC的变化跟踪器可能会引用实体对象,但是没有参考信息......所以它不应该阻止处理过的dc获得gc'd) – KristoferA 2009-09-18 03:56:25

+0

完美,谢谢! – 2009-09-18 04:03:37