【问题标题】:Null reference on Entity Framework Migration实体框架迁移的空引用
【发布时间】:2012-03-17 21:58:26
【问题描述】:

当我使用实体框架迁移的 Add-Migration 命令时,出现以下异常:

System.NullReferenceException: Object reference not set to an instance of an object. at System.Data.Entity.Migrations.Extensions.ProjectExtensions.GetFileName(Project project, String projectItemName) at System.Data.Entity.Migrations.MigrationsCommands..ctor(Object project, Object startUpProject, String configurationTypeName, String connectionStringName, String connectionString, String connectionProviderName, PSCmdlet cmdlet)

有什么见解吗?

【问题讨论】:

  • 完整的命令行是什么?您是否将其指向现有文件?文件真的存在吗?
  • 你能发布更多细节吗?您是否已经为您的项目(初始文件)激活了迁移?你做了哪些改变?
  • 命令类似于“Add-Migration Migration05”。迁移工作正常。我将项目移至 TFS,现在它不再工作了。我正在使用 EF 4.3

标签: c# entity-framework migration


【解决方案1】:

我以前在解决方案中有多个项目并且选择“错误”项目作为启动项目时看到过这种情况。例如,其他人报告说,在 Azure 托管的 MVC3 网站中,他们将 Azure 项目作为启动项目,而不是 MVC 项目。在启动时切换到 MVC 项目解决了问题。

更新:此问题已在 EF5-beta2 中得到修复,现在可以在 NuGet 上使用。

【讨论】:

  • 我确认 Arthurs 解决方案。还要在包管理器控制台中选择正确的项目。
  • 谢谢...将启动项目设置为 mvc 而不是 azure 对我有用。
  • 当我用不同的项目打开 2 个 VS2012 时发生在我身上。关闭另一个解决了它。谢谢。
【解决方案2】:

在调用任何 EF 命令时,您实际上可以非常轻松地在包管理器控制台中指定目标项目,只需使用正确的标志和参数,例如,在具有多个项目的解决方案中给定一个名为 ProjectFoo 的项目:

  • enable-migrations -projectname projectfoo
  • add-migration "Initial" -projectname projectfoo
  • update-database -projectname projectfoo 等等……

简单易行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多