我在我的网站上首先使用了Entity Framework代码,我只是想知道是否有任何方法可以调试迁移代码。你知道,比如设置断点之类的东西。
我正在使用包管理器控制台通过Update-Database
更新数据库。
谢谢
发布于 2013-07-20 06:02:36
我知道EF Code First Migrations是一个相对较新的工具,但别忘了你还在使用.NET。
因此,您可以使用:
if (System.Diagnostics.Debugger.IsAttached == false)
{
System.Diagnostics.Debugger.Launch();
}
在此之后,您可以看到您的InnerException。
或者您可以像这样使用try...catch语句:Exception handling Entity Framework
发布于 2018-10-08 18:41:40
这里有一个更可靠的方法,它可以做到这一点而不会引起太大的麻烦:
Step#1:将这段代码放在要调试的迁移的正上方:
public partial class ORACLE_Test : DbMigration
{
public override void Up()
{
if (!System.Diagnostics.Debugger.IsAttached)
System.Diagnostics.Debugger.Launch();
AddColumn("TEST", "UR_USER_ID", x => x.Decimal(nullable: false, precision: 11, scale: 0, storeType: "number"));
AddColumn("TEST", "UR_CLIENT_ID", x => x.Decimal(nullable: false, precision: 11, scale: 0, storeType: "number"));
[...]
}
public override void Down()
{
}
}
Step#2:编译包含迁移的项目
Step#3:在输出目录(/bin/Debug、/bin/Release等)中打开一个控制台,其中包含迁移的dll
Step#4:使用/scriptFile参数调用migrate.exe以启动调试器并实际调试所需的db-Step#4
migrate.exe "Your.Migrations.Assembly.dll" /scriptFile="foo.sql" /verbose /startupConfigurationFile="Your.Migrations.Assembly.config"
弹出调试器-选择器对话框后,选择已打开的visual studio实例。
发布于 2013-07-05 23:11:24
您可以将Console.WriteLine语句添加到迁移代码中(不是一个很好的解决方案)
请注意,只有在使用migrate.exe
实用程序(在pacakges\EntityFramework.x.y.z\tools
中)运行迁移代码时,才会显示这些消息。如果您通过Package Manager控制台运行迁移,它们将不会显示。
https://stackoverflow.com/questions/17169020
复制相似问题