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

问题

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

上下文

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

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

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

【问题讨论】:

    标签: c# sql-server-ce


    【解决方案1】:

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

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

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

    【讨论】:

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

    @linkgoron,

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

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

    希望对你有帮助,

    斯科特

    ~ 来自链接的博客文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多