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

时间:2015-03-04 15:28:23

标签: c# asp.net entity-framework ef-code-first ef-migrations

我在Seed的{​​{1}}方法中遇到问题,因为我的实体框架6代码优先迁移过程。我正在Configure.cs中运行Update-Database -verbose命令,并试图在Package Manager Console方法的c#代码中设置断点(在VS studio web express 2013中)。但是即使我把它放在方法的第一个语句中,它也没有被命中,虽然控制台显示Seed(并且由于我的错误而导致其中断)

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

2 个答案:

答案 0 :(得分:39)

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

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

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

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

答案 1 :(得分:1)

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