处理代码优先迁移中的错误

Kir*_*eed 2 entity-framework-migrations

我的 Up() 中有以下内容

public override void Up()
{      
    try
    {
        Sql("drop index [IX_SalesInvoiceLine] on dbo.SalesInvoiceLines"); 
    }
    catch (Exception)
    {
        // ignored
    }
    string sql = @"CREATE UNIQUE NONCLUSTERED INDEX [IX_SalesInvoiceLine] ON [dbo].[SalesInvoiceLines] ( [SalesInvoice_Id] ASC, [seqNo] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]";
    Sql(sql);
 }
Run Code Online (Sandbox Code Playgroud)

当我在调试器中单步执行代码时,我可以单步执行每一行。

但是,当我运行迁移时,我收到一条消息

"Cannot drop the index'dbo.SalesInvoiceLines_IXSalesInvoiceLine' , 
because it does not exist or you do not have permission"
Run Code Online (Sandbox Code Playgroud)

为什么会抛出这个错误?

Kir*_*eed 6

Up 过程正在向迁移提供命令以供稍后运行。因此,try catch 在这里并不相关。