如何在Visual Studio中创建测试数据库?

Oli*_*lck 1 c# database visual-studio localdb visual-studio-2013

我们有一个学校项目,我们必须在其中创建一个Web应用程序.我们可以访问在线数据库,但问题是我们必须先通过VPN连接才能连接到它.

出于这个原因,我们正在寻找一种可能性,在这种情况下,我们可以使用本地数据库(我想在项目中?)(项目在subversion服务器上).但是当我们在部署服务器上部署项目时,我们希望它使用真正的数据库连接.

我想我以前见过它,但经过几个小时的搜索,我找不到任何相关内容.

这可能吗?

编辑:

我们将MVC5与实体框架一起使用.

Geo*_*uer 5

人们通常会通过多种方式之一来实现这一点,具体取决于您希望实现的目标.

  • 将数据库作为mdf文件下拉并将其存储在存储库中.然后,您可以在安装过程中进行手动步骤,要求人们将其导入到数据库中(我建议使用localdb进行本地开发,但可以肯定,您可以使用sql server或其他东西).
    • 优点:为安排此事的人设置非常简单.
    • 缺点:对于初学者来说,手动步骤很难.如果数据库很大,它将使您的存储库膨胀.如果一个开发人员更改了数据库(例如通过添加列),则必须让每个人都知道要清除他们的副本并从备份中恢复.此外,没有关于数据库如何更改的真实显式历史记录,并且您的测试数据库未与您必须执行的任何部署集成.
  • 将数据库作为mdf文件下拉.在项目中包含此文件,并将其属性设置为Content/ Copy if Newer.然后直接使用连接字符串来连接addDb等Server=(localdb)\v11.0;AttachDbFilename=.\MyDataFile.mdf;Database=dbname;.
    • 优点:没有手动步骤,一切正常
    • 缺点:显然你想要使用相对路径,AttachDbFilename而且我不是100%支持它.此外,与上面相同,但不必让每个人都知道他们的数据库需要恢复时,它只是在幕后恢复.这可能意味着用户突然看到他们的数据消失而没有通知.它有时也会失败,因为像锁定的数据库文件这样的东西,每个人都必须善于注意这一点.
  • 维护一个可以在localdb中重新创建数据库的sql脚本.为人们提供PowerShell或批处理脚本(也在源代码管理中)以便轻松运行它.(可选)使用构建后脚本来确定是否需要重新创建数据库并运行它.
    • 优点:一切都非常明确.存储库中的合理小尺寸(应该能够有效地存储文本).您可以使用相同的脚本作为部署的一部分.
    • 缺点:建立更多工作.仍然没有真正的方法来部署对现有数据库的更改.
  • 首先使用实体​​框架数据库.我不能说这个过程看起来完全是什么,但我知道这是可能的.
    • 优点:我猜.
    • 缺点:Ewwww EF数据库第一
  • 首先使用实体​​框架代码迁移.使用显式迁移(不是愚蠢的auto-generate-my-whole-db cruft)并编写适当的Seed方法来填充数据.
    • 优点:这是专业开发人员所做的,并且基于Rails,Django和许多其他框架经常使用的测试模式.它非常灵活和明确,支持更改现有数据库.
    • 缺点:如果您没有经验,尤其是如果您不了解迁移模式,则可能很难设置.有一些命名困难使得它很难谷歌(数据库第一EF与代码优先EF,显式迁移与自动生成数据库,几种不同的种子方法依赖于你的初始化程序).