问题
如何使用SQL CE 4.0创建内存数据库?
上下文
我想使用真实数据库进行一些单元测试(或自动集成测试),但是,这是一个内存中的数据库。这将使测试运行得更快,而且,一旦测试完成,数据库将在空气中消失。
根据Scott Guthrie的博客文章“VS 2010 SP1 and SQL CE”,新的SQL CE 4.0能够做到这一点:提供内存数据库。
但是,我在网上找不到任何教程或代码示例,显示它是如何完成的。我只在这个blog post中找到了这个连接字符串示例。但这也击中了硬盘。
答案 0 :(得分:8)
SQL Server CE 4.0不允许仅内存数据库。
该博客文章称CE在您的应用程序内存中运行。
Scott的评论说CE将文件映射到内存中,但仍需要文件。
答案 1 :(得分:3)
@linkgoron,
您在考虑添加内存数据库功能吗?这可以帮助一个 单元测试(创建/删除) 在内存DB中使用Code-First 应该是多少 比基于文件的DB快(我用过 这种方法与其他DB,和 很想实际使用SQL Server CE吧)。这也减少了 需要模拟数据 单元测试时访问/存储库。
SQL CE本身在内存中运行 - 等等 创建和使用起来非常快 单元测试项目。我相信它确实如此 需要磁盘上的DB文件 - 但是 立即将其映射到内存中(所以 它和内存一样快。你会 仍然创建/删除文件作为一部分 您的设置/拆卸逻辑 - 但是 这应该像删除一样简单 文件(没有明确的丢弃或 需要清理)。
希望这有帮助,
斯科特
〜来自链接的博文。