【问题标题】:What's the purpose of StartupProjectName parameter in Add-Migration in EFEF中添加迁移中StartupProjectName参数的目的是什么
【发布时间】:2015-07-07 20:06:05
【问题描述】:

据我了解 Add-Migration 正在做什么,它只是将当前代码模型与上次应用迁移的模型(其 resx 文件中包含整个模型)进行比较

对于 StartupProjectName 参数的描述它说:

-StartUpProjectName

指定用于命名连接字符串的配置文件。 如果省略,则使用指定项目的配置文件。

如果每个迁移都有整个模型的快照,那么就不需要数据库,因为当前模型和那个快照是完全可比的。

那么为什么Add-Migration命令中要提供这个参数来指定连接字符串呢?

【问题讨论】:

    标签: c# entity-framework entity-framework-migrations


    【解决方案1】:

    使用该参数,您可以指定包含连接字符串的项目(例如在 app.config 中)。

    您可以在单独的项目中进行迁移(不包含连接字符串)。

    【讨论】:

    • 我的问题是为什么 Add-Migration 需要连接字符串。据我所知,它在工作的任何阶段都不需要数据库。
    • 它确实需要一个连接,迁移历史是通过__MigrationHistory 表检索的。这个表存储有关迁移的信息。
    • 但是 Add-Migration 不会更新数据库。那么为什么它需要数据库。它要做的就是找出当前模型与上次快照之间的差异。
    • 它的快照是从哪里得到的?
    • 在以下链接中,它表示每个迁移在其 resx 文件中都有一个完整的快照:msdn.microsoft.com/en-us/data/dn481501.aspx
    【解决方案2】:

    Add-Migration 不需要“-StartUpProjectName”,因为您可以从包管理器控制台上方的下拉列表中选择“默认项目”。 您可以使用参数“-StartUpProjectName”覆盖下拉列表中的“默认项目”值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-30
      • 2021-05-07
      • 1970-01-01
      • 2020-04-10
      • 1970-01-01
      • 2018-02-10
      • 2019-12-27
      • 1970-01-01
      相关资源
      最近更新 更多