首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用EF快速加载整个数据库

如何使用EF快速加载整个数据库
EN

Stack Overflow用户
提问于 2011-02-01 04:24:28
回答 2查看 1.1K关注 0票数 2

我的数据库由5个表组成,总共有大约10000行。在共享文件夹上的SQL Server CE中,它需要~1Mb。数据库本身是国家-地区-城市-街道-建筑物的分层结构。我使用的是实体框架4。

由于数据库很小,用户可以在WPF ListView中浏览和编辑所有2000个城市。但是,到目前为止,我尝试过的每种方法的GUI都很慢(因为需要多次数据库往返,使用虚拟数据的GUI速度很快)。如何通过一次或几次数据库往返将整个数据库加载到内存中?

我尝试了多个Include(),但我注意到as described here的性能损失很大

我应该轻量ORM- write my own吗?我也可以使用普通的ascii CSV文件来代替数据库,但它显然会排除并发性。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-09 02:02:52

我在Microsoft forum上重新问了这个问题,他们好心地给了我一些指导:

基本上,我的问题可以重申如下:

  • 在应用程序启动时仅从数据库读取一次
  • 从本地数据(而不是数据库)执行所有后续查询(对于每次添加或删除实体时对上下文和数据库的
  • )。

对于普通的EF,这是不可能的,因为每个查询都会进入数据库。这意味着我必须在启动时读取fast的数据,然后对其执行

实现详情:

最好的方法似乎是使用ESQL快速导入数据,然后对其进行缓存,例如使用entities not connected to context。从我的第一次实验来看,它似乎工作得很好。

票数 0
EN

Stack Overflow用户

发布于 2011-02-01 04:28:27

老实说,我自己也做过这样的事情,对我来说,答案是将整个数据库复制到本地并对其进行处理。

如果您不仅想要读,而且还想写,我绝对建议您抛弃CE,安装Sql Server的Express版本之一。它们是为这种情况设计的;CE不是*。

*SP1更适合于并发访问,但网络上的性能永远不会适用于大型数据集。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4855700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档