处理代码首次迁移中的错误

时间:2015-11-12 05:03:18

标签: ef-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);

}

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

然而,当我运行迁移时,我收到一条消息

"Cannot drop the index'dbo.SalesInvoiceLines_IXSalesInvoiceLine' , 
because it does not exist or you do not have permission"

为什么会抛出此错误?

1 个答案:

答案 0 :(得分:2)

Up程序正在向迁移提供命令以便稍后运行。 因此,try catch与此无关。