Entity framework 实体框架7“;dnx ef迁移添加";缺少输出文件

Entity framework 实体框架7“;dnx ef迁移添加";缺少输出文件,entity-framework,entity-framework-core,dnx,Entity Framework,Entity Framework Core,Dnx,EF7命令 dnx ef migrations add XXX 突然停止工作。它向控制台提供正常输出 C:\Users\Nikola\Dev\ScanburSandbox\src\ScanburSandbox>dnx ef migrations add XXX Done. To undo this action, use 'ef migrations remove' …但通常不会生成.cs和.designer.cs文件 问题:有人能建议为什么会发生这种情况,或者我如何排除故障吗? 更

EF7命令

dnx ef migrations add XXX 
突然停止工作。它向控制台提供正常输出

C:\Users\Nikola\Dev\ScanburSandbox\src\ScanburSandbox>dnx ef migrations add XXX
Done. To undo this action, use 'ef migrations remove'
…但通常不会生成.cs和.designer.cs文件

问题:有人能建议为什么会发生这种情况,或者我如何排除故障吗?

更多详情:

在运行命令之前和之后,Migrations文件夹的内容如下所示:

11-02-2016  00:03             7.629 00000000000000_CreateIdentitySchema.cs
11-02-2016  00:03             6.637 00000000000000_CreateIdentitySchema.Designer.cs
11-02-2016  00:08             9.688 20160210230810_modelv2.cs
11-02-2016  00:08            10.103 20160210230810_modelv2.Designer.cs
12-02-2016  15:38             8.636 20160212083018_modelv3.cs
12-02-2016  15:38            10.065 20160212083018_modelv3.Designer.cs
12-02-2016  15:38            10.058 ApplicationDbContextModelSnapshot.cs
到目前为止,我已经多次成功运行EF7工具(“dnx ef迁移”和“dnx ef数据库”),每次都取得了预期的结果。这意味着“dnx ef migrations add XXX”将在每次执行时添加一个新的.cs和.designer.cs文件。无论模型类是否发生更改,都会发生这种情况

我不知道如何解决这个工具的故障。我没有在任何地方看到任何调试标志或任何日志文件。我在输出中没有看到任何错误


我被困在这里,真希望有人有好主意

您的项目是否多于DbContext或多个项目?我猜如果你没有收到错误,你的文件可能是在别处写的。尝试为dnx ef迁移add XXX指定所有选项,如输出目录、项目名称和上下文类名。 如果在项目文件夹中键入以下命令,则可以看到该命令的所有可用选项。我会详细说明所有这些,看看结果如何。您可能需要使用新的迁移名称,以确保可以安全地跟踪命令结果。
dnx ef migrations add--help

我也遇到了同样的问题,我在指定项目、上下文和输出目录方面运气不好。看起来它只是在拖延,什么也不做。我还尝试在管理员powershell中运行它,以防出现权限问题,但仍然没有


编辑:我尝试在linux机器上添加一个新的迁移,这似乎可以很好地创建迁移。以后创建迁移现在似乎工作得很好。

经过进一步研究,我终于意识到迁移文件丢失的原因

我使用verbose标志再次运行: dnx ef迁移添加v3-v

这是输出:

Finding DbContext classes...
Using context 'ApplicationDbContext'.
An operation was scaffolded that may result in the loss of data. Please review the migration for accuracy.
Reusing directory of file '00000000000000_CreateIdentitySchema.cs'.
Reusing directory of file 'ApplicationDbContextModelSnapshot.cs'.
Writing migration to
'c:\Users\Nikola\Dev\SdmWeb\src\SdmWeb\bin\output\approot\src\SdmWeb\Migrations\20160223195618_v1.cs'.
Writing model snapshot to
'c:\Users\Nikola\Dev\SdmWeb\src\SdmWeb\bin\output\approot\src\SdmWeb\Migrations\ApplicationDbContextModelSnapshot.cs'.
Done. To undo this action, use 'ef migrations remove'
这里棘手的一点是,它正在“重用…的目录”,然后它说它正在将迁移文件写入…\bin\output\approt\src


清理bin文件夹并再次运行后,迁移文件将按预期在迁移文件夹中直接在…\Migrations下生成

如果您有新问题,请单击按钮提问。如果你有足够的声誉,问题就来了。或者,将其作为最爱,您将收到任何新答案的通知。我也在Linux上尝试过。在project.json“EntityFramework.MicrosoftSqlServer.Design”中添加这一行之后:“7.0.0-rc1-final”实际上可以在Linux上运行。但仍然无法在我的windows pc上的原始项目中工作。我可以使用Linux机器作为解决方法,但这当然非常笨拙和耗时。我建议在Linux上构建。我尝试使用-o和-outputDir选项,但似乎失败了:Microsoft.Dnx.Runtime.Common.CommandLine.CommandParsingException:无法识别的命令或参数“Migrations2”