如何使用 SQL CE 4.0 创建内存数据库?

Posted

技术标签:

【中文标题】如何使用 SQL CE 4.0 创建内存数据库?【英文标题】:How to create an in-memory database with SQL CE 4.0? 【发布时间】:2011-02-22 23:44:23 【问题描述】:

问题

上下文

我想用一个真实的数据库做一些单元测试(或自动化集成测试),但是,一个在内存中的。这将使测试运行得更快,另外,一旦测试完成,数据库就会消失得无影无踪。

根据 Scott Guthrie 的博文“VS 2010 SP1 and SQL CE”,新的 SQL CE 4.0 能够做到这一点:提供内存数据库。

但是,我在网上找不到任何教程或代码示例来说明它是如何完成的。我只在blog post 中找到了这个连接字符串示例。但这也会影响硬盘。

【问题讨论】:

【参考方案1】:

SQL Server CE 4.0 不允许仅内存数据库。

那篇博文说 CE 在您的应用程序的内存中运行。

Scott 的评论说 CE 将文件映射到内存中,但这仍然需要该文件。

【讨论】:

我同意。您可以参考我的帖子进行评论。【参考方案2】:

@linkgoron,

您是否正在考虑添加内存数据库功能?这可以帮助一个 很多单元测试(创建/删除 在内存数据库中使用 Code-First for 每个测试)应该很多 比基于文件的数据库更快(我用过 这种方法与其他数据库,以及 很想实际使用 SQL Server CE 为它)。这也减少了 需要模拟数据 单元测试时访问/存储库。

SQL CE 本身在内存中运行 - 等等 创建和使用的速度非常快 单元测试项目。我相信确实如此 需要磁盘上的数据库文件 - 但是 立即将其映射到内存中(所以 它和内存一样快)。你会 仍然创建/删除文件作为一部分 您的设置/拆卸逻辑 - 但是 这应该像删除 文件(没有明确的删除或 需要清理)。

希望对你有帮助,

斯科特

~ 来自链接的博客文章。

【讨论】:

以上是关于如何使用 SQL CE 4.0 创建内存数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何让实体数据模型与 SQL Server CE 4.0 一起使用?

使用 Sql Management Studio 2008 连接到 Sql Server CE 4.0 时出现问题

将 SQL Server CE 数据库 (.sdf) 从 3.5 更新到 4.0

SQL Server CE 数据库升级 3.5 到 4.0 C#

无法使用 SQL Server CE 4.0

使用 SQL Server CE 4.0 的简单实体查询慢