如何使用 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