gpt4 book ai didi

c# - 持久 Entity Framework 查询缓存

转载 作者:太空狗 更新时间:2023-10-29 23:50:59 25 4
gpt4 key购买 nike

我有一个 ASP.NET MVC 5 网络应用程序并使用 EF 6.1 访问我的数据库。
我有一些相当复杂的 LINQ 查询,这些查询最多需要 10 秒才能编译,但随后会在几毫秒内执行。 EF 确实可以很好地缓存此查询,并且第二次执行查询时它会在这几毫秒内返回。
但是此缓存不会保留,因此在每次应用程序重新启动时都需要重新编译查询,这又需要 10 秒。

有没有办法保留此查询缓存,使其在应用重启后仍然存在?

最佳答案

您可以使用编译查询:see herehere

static readonly Func<AdventureWorksEntities, Decimal, IQueryable<SalesOrderHeader>> s_compiledQuery2 = 
CompiledQuery.Compile<AdventureWorksEntities, Decimal, IQueryable<SalesOrderHeader>>(
(ctx, total) => from order in ctx.SalesOrderHeaders
where order.TotalDue >= total
select order);

但如前所述here查询对象不得超出范围。您可以通过将其缓存在 session 中或作为应用程序变量来处理此问题。

关于c# - 持久 Entity Framework 查询缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26073248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com