linq2SQL(存储库模式)的SQLCACHEDEPTINCE
-
25-10-2019 - |
题
我在ASP.NET 3.5 Web应用程序中使用L2S存储库模式。但是我对现场表现不太满意。我搜索了Google,并使用SQLCachEdepentency类遇到了SQL缓存。但是我没有任何教程或链接可以解释如何在我的情况下使用它。
因此,请帮助我...任何帮助或指导都将不胜感激。
请使用一些示例代码或在线参考。
提前致谢
更新:我的存储库
public interface IRepository<T> where T : class
{
T GetById(int id);
IQueryable<T> GetAll();
void SaveOrUpdate(T entity);
void DeleteOnSubmit(T entity);
}
解决方案
有时LINQ到SQL以意想不到的方式进行查询。您是否检查了LINQ查询是如何翻译成SQL的?使用SQL Server Profiler(在SQL Management Server中的工具菜单上可用)来检查生成的查询。我写了一些有关它的信息 这里.
一旦知道自己的查询就产生了良好的查询,就应该看看是否执行任何人是性能瓶颈。探索者也可以在这里提供帮助。如果某些查询运行缓慢,请尝试添加适当的索引。
除非您有一个很大的网站,否则这些步骤应为您提供良好的性能而无需进行缓存。
其他提示
您没有描述如何将LINQ与存储库一起使用SQL。基本上,您是为在单个请求期间创建的所有存储库重复使用相同的DataContext,还是每个存储库都会获得自己的DataContext实例?如果是后者,您会在DataContext的内部可捕度性上丢失。
可以提高性能的另一个领域是,如果您有任何经常使用的查询,这些查询包含大量连接的层(不仅是单个表格)。用一个 编译 这里将大大加快事情的速度。只需在第一次使用时就必须生成编译的Querquies,否则每次使用的查询都会重新编译。
不隶属于 StackOverflow