首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >调试代码优先实体框架迁移代码

调试代码优先实体框架迁移代码
EN

Stack Overflow用户
提问于 2013-06-18 20:35:07
回答 4查看 43.4K关注 0票数 146

我在我的网站上首先使用了Entity Framework代码,我只是想知道是否有任何方法可以调试迁移代码。你知道,比如设置断点之类的东西。

我正在使用包管理器控制台通过Update-Database更新数据库。

谢谢

EN

回答 4

Stack Overflow用户

发布于 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

票数 267
EN

Stack Overflow用户

发布于 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实例。

票数 8
EN

Stack Overflow用户

发布于 2013-07-05 23:11:24

您可以将Console.WriteLine语句添加到迁移代码中(不是一个很好的解决方案)

请注意,只有在使用migrate.exe实用程序(在pacakges\EntityFramework.x.y.z\tools中)运行迁移代码时,才会显示这些消息。如果您通过Package Manager控制台运行迁移,它们将不会显示。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17169020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档