gpt4 book ai didi

c# - Entity Framework 4 和查询结果的缓存

转载 作者:IT王子 更新时间:2023-10-29 04:21:47 24 4
gpt4 key购买 nike

假设我有一个或两个表包含永远不会或很少更改的数据,尝试缓存这些数据有什么意义吗?或者当我第一次加载它们时,EF 上下文会为我缓存这些数据吗?我正在考虑从这些表中加载所有数据,并使用静态列表或其他东西将这些数据保存在内存中,并在我需要同一上下文中的数据时查询内存中的数据而不是表。我所说的那些表通常包含几百行数据。

最佳答案

EF 上下文将缓存“每个实例”。也就是说,DbContext 的每个实例都有自己独立的对象缓存。您可以将生成的对象列表存储在静态列表中,并在不返回数据库的情况下随意查询。为了安全起见,请确保在执行查询后放弃DbContext

var dbContext = new YourDbContext();
StaticData.CachedListOfThings = dbContext.ListOfThings.ToList();

您稍后可以使用 LINQ 查询静态列表。

var widgets = StaticData.CachedListOfThing.Where(thing => thing.Widget == "Foo");

查询执行内存中的集合,而不是数据库。

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

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