C# 在程序执行期间将只读数据库表保存在局部变量中

C# 在程序执行期间将只读数据库表保存在局部变量中,c#,entity-framework,linq,C#,Entity Framework,Linq,我的应用程序需要从只读数据库读取数据并显示它(我使用linq获取数据) 在执行过程中将数据库表存储在本地列表中,然后在本地列表上使用linq而不是在实体上使用linq,这是否更好 谢谢正如评论中所指出的,这取决于您的情况 值得在内存中保存经常访问的少量数据(配置信息), 另一方面,将大量数据保存在内存中可能是一种过分的做法,在这种情况下,db读取更为可取,因此最终您可以通过考虑数据的大小和对该数据的读取次数来决定。在几乎所有情况下,IQueryable上的linq都会更好。查询将花费几乎相同的时

我的应用程序需要从只读数据库读取数据并显示它(我使用linq获取数据)

在执行过程中将数据库表存储在本地列表中,然后在本地列表上使用linq而不是在实体上使用linq,这是否更好


谢谢

正如评论中所指出的,这取决于您的情况

值得在内存中保存经常访问的少量数据(配置信息),
另一方面,将大量数据保存在内存中可能是一种过分的做法,在这种情况下,db读取更为可取,因此最终您可以通过考虑数据的大小和对该数据的读取次数来决定。

在几乎所有情况下,IQueryable上的linq都会更好。查询将花费几乎相同的时间,您的内存中不会有预筛选的数据,并且由于延迟加载/跟踪,您不太可能遇到性能问题。这实际上取决于您的设置—数据量、访问频率、服务器延迟、数据本地存储所需的内存量、,等等通常,缓存它是一个好主意,您可以在本地缓存它,也可以选择一些远程缓存实现,比如Redis。