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

时间:2011-02-22 23:44:23

标签: c# sql-server-ce

问题

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

上下文

我想使用真实数据库进行一些单元测试(或自动集成测试),但是,这是一个内存中的数据库。这将使测试运行得更快,而且,一旦测试完成,数据库将在空气中消失。

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

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

enter image description here

2 个答案:

答案 0 :(得分:8)

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

该博客文章称CE在您的应用程序内存中运行。

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

答案 1 :(得分:3)

  

@linkgoron,

     
    

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

  
     

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

     

希望这有帮助,

     

斯科特

〜来自链接的博文。