database - 如何使用 EF 急切加载整个数据库

标签 database entity-framework entity-framework-4 eager-loading

我的数据库由 5 个表组成,总计约 10000 行。在共享文件夹上的 SQL Server CE 中需要 ~1Mb。数据库本身是分层的 Country-Region-City-Street-Building。我正在使用 Entity Framework 4。

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

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

我应该write my own ORM 灯?我也可以使用普通的 ascii CSV 文件而不是数据库,但它显然会排除并发性。

最佳答案

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

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

*SP1 更适合并发访问,但对于大型数据集,网络永远无法发挥性能。

关于database - 如何使用 EF 急切加载整个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4855700/

相关文章:

c# - Entity Framework 引发无效操作异常 - app.config 中未找到连接字符串

c# - EF SaveChanges() 背后发生了什么

entity-framework-4 - 一个或多个实体的验证失败

sql - 插入多行Qt Quick Local Storage?

c# - 尽管安装了 Entity Framework v6.1.3,但仍无法访问 System.Data.Entity 命名空间?

entity-framework - Entity Framework 继承 : TPT, TPH 还是没有?

entity-framework - 如何安全地增加 Entity Framework 中的计数器

database - 在 postgreSQL 上插入之前获取函数触发器中新记录的 ID

python - 在不丢失数据的情况下合并和取消合并对象的最佳方式

sql - 为什么在关系数据库中不支持从存储过程中进行选择?