Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net LINQ到SQL存储库-缓存数据_Asp.net_Asp.net Mvc_Linq To Sql_Asp.net Mvc 2_Repository - Fatal编程技术网

Asp.net LINQ到SQL存储库-缓存数据

Asp.net LINQ到SQL存储库-缓存数据,asp.net,asp.net-mvc,linq-to-sql,asp.net-mvc-2,repository,Asp.net,Asp.net Mvc,Linq To Sql,Asp.net Mvc 2,Repository,我构建了我的第一个MVC解决方案,并使用存储库模式检索/插入/更新我的数据库 我现在正在进行重构,我注意到,事实上,我的存储库中的很多方法每次都会访问数据库。这似乎有些过分,理想情况下,我想做的是从数据库中“缓存”主数据对象,例如“GetAllAdverts”,然后针对该缓存对象查询“FindAvertId、AddAdvert、DeleteAdvert等” 我还需要考虑对这个缓存对象和数据库进行更新/删除/添加记录。 对于这样的事情,最好的方法是什么 我对这类事情的了解很少,我真的在寻找建议/指

我构建了我的第一个MVC解决方案,并使用存储库模式检索/插入/更新我的数据库

我现在正在进行重构,我注意到,事实上,我的存储库中的很多方法每次都会访问数据库。这似乎有些过分,理想情况下,我想做的是从数据库中“缓存”主数据对象,例如“GetAllAdverts”,然后针对该缓存对象查询“FindAvertId、AddAdvert、DeleteAdvert等”

<>我还需要考虑对这个缓存对象和数据库进行更新/删除/添加记录。

对于这样的事情,最好的方法是什么

我对这类事情的了解很少,我真的在寻找建议/指导/教程,为我指明正确的方向


提前谢谢。

这刚刚触动了我的雷达,我想你现在已经解决了这个问题。但如果不是,我将研究预编译的LINQ查询。大概是这样的:

        private static Func<SomeDataContext, int, PersonDto> _getPersonByIdQuery =
       CompiledQuery.Compile<SomeDataContext, int, PersonDto>(
           (dataContext, personId) =>
               dataContext.PersonDtos.where(c => c.PersonId == personId).FirstOrDefault()
               );
在datacontext中放入类似的内容,然后在其中添加一个内部方法来调用它。然后,您的检索器/保存器将调用内部方法。这有意义吗?如果需要,我可以发布更多的代码

祝你好运

贾斯汀