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

我在我的entity framework6的代码优先迁移过程的Configure.cs中的Seed方法中遇到了问题。 我在Package Manager Console运行Update-Database -verbose命令,并尝试在Seed方法的c#代码中设置断点(在VS studio web express 2013中)。 但即使我把它放在方法的第一个语句中,它也没有被命中,虽然控制台显示running seed method (并且由于我的错误而导致其中断)

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

它不可能直接在源代码中,但您可以通过源代码附加调试器。 有关详细信息,请参阅此链接 :

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

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

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

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