缓存表与实体框架4(Cache table with Entity Framework 4)

2019-10-16 13:38发布

我有一个表有很多行的是产品表,当用户搜索的网站,我做一个选择从这个表,我也使用在选择包括方法,我用探查和我注意到,EF生成有很多的内部连接的查询,左连接等等。

我想要做的就是用这个选择查询,并在同一个数据库结果插入临时缓存表,然后我可以创建一个服务来更新这个表中的每个x分钟。

问题是,如何使EF使用此缓存表中选择行,所以我可以只是做一个选择*而不是每次查询产品表中的联接?

谢谢!

Answer 1:

我敢肯定EF没有临时表支持 - 至少开箱即用 - 但它是不断变化的。

最好的办法是做这样的事情...

dbcontext.Database.ExecuteSqlCommand("...")

......我猜有,你可以运行任意SQL(我知道大多数的东西可以被传递,但我不知道的局限性,但你可以运行一个SP,创建索引等) - 设置一个临时表。

那么下一步会做相反的一侧是这样的..

dbcontext.MyTable.SqlQuery("...").ToList()

...映射回SQL结果到你的一些实体 - 或者一个非映射实体串什么的。 ( dbcontext.MyTable.SqlQuery<T>("...").ToList()

现在的问题是如何做到这一点正是 - 不知道你的具体情况真的。 但是,您可以创建前手一个临时表,并把它映射 - 并使用它的温度的目的。

基本上,这是一个DBA思维-但EF不适合这样的事情(看到类似的东西在这里的实体框架4.更新性能实体框架临时表或表变量的推荐使用量 ),但与自定义跑起来像查询你可能是好的以上。

希望能帮助到你

编辑:这也可能有助于从EF论坛,但它更涉及。



文章来源: Cache table with Entity Framework 4