gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:46:37 31 4
gpt4 key购买 nike

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

出于这个原因,我们正在寻找一种可能性,我们可以在其中拥有一个我们都可以使用的本地数据库(我想应该在项目中吧?)(该项目位于颠覆服务器上)。但是当我们在部署服务器上部署项目时,我们希望它使用真实的数据库连接。

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

这可能吗?

编辑:

我们将 MVC5 与 Entity Framework 结合使用。

最佳答案

人们通常会根据您想要实现的目标,以多种方式中的一种来实现这一点。

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

关于c# - 如何在 Visual Studio 中创建测试数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29402090/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com