0

我们首先使用 ef 代码 4.4 和 db 迁移。我在我们的DbContext. 当我Update-Database从包管理器控制台运行命令时,它会生成数据库,但随后会抛出异常并显示消息

There is already an object named 'PayPal' in the database.

当我使用详细命令检查包管理器控制台中的 sql 语句时,有两个用于创建 paypal 表的命令,一个来自 Migrations 文件夹中的 InitialCreate.cs,另一个来自同一文件夹中的 test.cs。

编辑1:两者中
Up方法都包含以下第一个条目。DateTime_InitialCreate.csDateTime_test.cs

CreateTable(
                "dbo.PayPal",
                c => new
                    {
                        Id = c.Int(nullable: false, identity: true),
                        ActionUrl = c.String(),
                        Cmd = c.String(),
                        Price = c.String(),
                        Interval = c.String(),
                        IntervalType = c.String(),
                        AutoRecurring = c.String(),
                        Business = c.String(),
                        Return = c.String(),
                        CancelUrl = c.String(),
                        NotifyUrl = c.String(),
                        PlanName = c.String(),
                        Amount = c.String(),
                        CurrencyCode = c.String(),
                    })
                .PrimaryKey(t => t.Id);

检查代码时,两个文件看起来完全一样,没有任何区别。

我应该怎么做才能解决这个问题?

4

1 回答 1

0

如果我没看错(如果我错了,请纠正我),你试图在这两个位置创建表而不检查它是否已经存在。在这种情况下,当您运行 Update-Database 时,它​​会尝试创建两次,因为它在两个文件中都找到了它。此时您会因为它已经存在而收到错误。

您需要检查以确保两个文件中都不存在该表,以防止这种情况发生。

如果我读错了,请告诉我。

于 2012-12-26T18:39:45.640 回答