可以在 EF 代码第一次迁移种子方法中设置断点吗?

Can one set a breakpoint in EF code first migrations seed method?

我的 entity framework 6 代码优先迁移过程的 Configure.cs 中的 Seed 方法出现问题。我是运行Package Manager Console中的Update-Database -verbose命令,并试图在Seed方法的c#代码中设置断点(在VS studio web express 2013中)。但是即使我把它放在方法的第一条语句上,它也不会被命中,尽管控制台显示 running seed method (随后由于我的错误而中断)

那么能否以某种方式在 Seed 方法中设置断点?如果没有,调试该代码的最佳方法是什么?

Update-Database 运行s 退出调试会话,因此无法设置断点。您需要 运行 您的 Seed 方法在您的代码中的其他地方,例如虚拟方法,您可以从您的应用程序中启动。

直接在源代码中是不可能的,但您可以通过源代码附加调试器。详情请见this link

if (System.Diagnostics.Debugger.IsAttached == false)
   System.Diagnostics.Debugger.Launch();

另一种选择是 运行 通过源代码进行迁移,如上所述:

var configuration = new Configuration();
var migrator = new DbMigrator(configuration);
migrator.Update();