我将一个项目升级到 Entity Framework 4.3 并在项目上启用了迁移。
但是,在运行 Update-Database 命令时出现此错误:
无法构建下一次迁移,因为目标数据库是使用早于 EF 4.3 的 Code First 版本创建的,并且不包含迁移历史记录表。要开始对该数据库使用迁移,请确保当前模型与目标数据库兼容并执行迁移更新过程。(在 Visual Studio 中,您可以使用包管理器控制台中的 Update-Database 命令来执行迁移更新过程)。
基本上,它告诉我运行给我错误的相同命令(更新数据库)。
有任何想法吗?
不完全是一种“有趣”的方式,但我让应用程序创建一个新数据库,该数据库创建一个名为“__MigrationHistory”的系统表。然后我运行以下脚本在我的旧数据库上创建该表。我还创建了一个脚本,将新数据库中存在的一行复制到旧数据库中。
如果来自 Microsoft 或社区的人知道执行此操作的更有效方法,请在此处发布!
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[__MigrationHistory](
[MigrationId] [nvarchar](255) NOT NULL,
[CreatedOn] [datetime] NOT NULL,
[Model] [varbinary](max) NOT NULL,
[ProductVersion] [nvarchar](32) NOT NULL,
CONSTRAINT [PK___MigrationHistory] PRIMARY KEY CLUSTERED
(
[MigrationId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO