【问题标题】:Enable-Migrations installation errorEnable-Migrations 安装错误
【发布时间】:2013-06-25 21:48:05
【问题描述】:

在我的一个项目上启用迁移时遇到了问题。 我从 Nuget 控制台执行 Enable-Migrations 命令并收到一条错误消息:

Exception calling "SetData" with "2" argument(s): "Type 
'Microsoft.VisualStudio.TeamArchitect.ModelingProject.ModelProjectAutomationObject' in assembly 
'Microsoft.VisualStudio.TeamArchitect.ModelingProject, Version=11.0.0.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a' is not marked as serializable."
At D:\Solution\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:391 char:5
+     $domain.SetData('startUpProject', $startUpProject)
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SerializationException

在此之前有没有人遇到过这个问题,可以为我指明正确的方向。

环境:
.NET 4.5
实体框架 5
Visual Studio 2012 更新 2

【问题讨论】:

    标签: entity-framework visual-studio-2012 entity-framework-5 entity-framework-migrations


    【解决方案1】:

    找到问题了!
    问题是我的解决方案中的启动项目是一个建模项目。 出于某种原因,在我的项目上启用迁移时,该模块会查看与启动项目相关的库。

    将我的启动项目更改为解决方案中的测试项目,一切正常。

    更新

    确保您的启动项目包含您要用于连接数据库的app.configweb.config 文件。即使您的 DbContext 位于不同的项目中,该文件也将用于生成迁移。您可以将包含您DbContext的项目设置为启动项目。

    【讨论】:

    • 非常感谢。大多数教程从未提及这部分。
    • 对我不起作用。我的项目已经设置为启动项目,但是我得到了同样的错误。
    【解决方案2】:

    事实证明,当您使用代码优先迁移时,您必须在 VS 中指定一个启动项目,该项目引用您的迁移在其他地方定义的项目,它将无法加载该项目。

    (如果您在 Visual Studio 中使用 Code First 迁移,如果您的解决方案的启动项目未引用包含您的迁移的项目,则可能会发生这种情况。您可以更改解决方案的启动项目或使用 -StartUpProjectName 参数.)

    【讨论】:

      【解决方案3】:

      以防万一其他人仍然有问题,我遇到了这个问题,因为我同时安装了 Entity Framework 6 和 Entity Framework Core。我相信,仅运行命令默认为 EF6。在我使用“EntityFrameworkCore/”作为命令的开头之后,它运行良好。我不是这方面的专家,所以如果不正确,我很抱歉。 (例如“EntityFrameworkCore/”)

      【讨论】:

        【解决方案4】:

        尝试指定内容类型名称:

        Enable-Migrations -ContextTypeName Web.Infrastructure.ContextName

        如果您的解决方案中有多个项目,则必须指定应用哪一个。 (控制台顶部的下拉菜单“DefaultProject”)。

        【讨论】:

          【解决方案5】:

          我也遇到了这个问题,并意识到它无法连接,因为启动 web.config 不包含 EF 配置详细信息。包含它的项目(数据层)具有所需的配置信息,但未使用该配置。只需从使用 EF 的配置文件中移动 EF 配置信息,并将其放入启动项目的配置中。对我来说是一种享受。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2016-04-25
            • 2017-10-18
            • 1970-01-01
            • 1970-01-01
            • 2019-03-29
            • 2016-04-04
            • 1970-01-01
            • 2020-01-20
            相关资源
            最近更新 更多