Entity framework 4 实体框架迁移尝试将NULL插入CreatedOn失败

Entity framework 4 实体框架迁移尝试将NULL插入CreatedOn失败,entity-framework-4,migration,Entity Framework 4,Migration,我正在尝试使用实体框架和代码优先迁移在开发服务器上更新我的数据库(在我的本地机器上一切正常)。我使用命令updatedatabase-Script-SourceMigration:201305161422570\u AddedWidgets来生成必要的脚本。当我在服务器上的SQL Management Studio(2008R2)中运行此脚本时,每次脚本尝试写入_MigrationHistory表时,我都会收到一个错误。确切的错误是: Cannot insert the value NULL i

我正在尝试使用实体框架和代码优先迁移在开发服务器上更新我的数据库(在我的本地机器上一切正常)。我使用命令
updatedatabase-Script-SourceMigration:201305161422570\u AddedWidgets
来生成必要的脚本。当我在服务器上的SQL Management Studio(2008R2)中运行此脚本时,每次脚本尝试写入_MigrationHistory表时,我都会收到一个错误。确切的错误是:

Cannot insert the value NULL into column 'CreatedOn', table 'master.dbo.__MigrationHistory'; column does not allow nulls. INSERT fails.
我以前从未遇到过这个错误,但我发现它非常奇怪,因为我的uu MigrationHistory表没有列
CreatedOn
,我也没有尝试将任何内容放入名为该列的列中。以下是我的insert语句之一:

INSERT INTO [__MigrationHistory] ([MigrationId], [Model], [ProductVersion]) VALUES ('201306031825584_AddedTitleToSocialLevel', 0x1F8B0800000000000400EDBDDD92...0, '5.0.0.net45')

我不知道该从这里走到哪里,有人有什么建议吗?

错误肯定是抱怨数据库“master”中有一个表“\uu MigrationHistory”,它肯定有一个不可为空的列“CreatedOn”,插入该行时没有设置该列。您应该仔细检查开发服务器数据库的模式。

回顾错误和wagregg的建议,我意识到生成的脚本正在
master.dbo.MigrationHistory
中查找我的u MigrationHistory表,但实际上它并没有在那里


我将这些引用从
[\u MigrationHistory]
更改为
[EnterpriseWebDB].[dbo].\u MigrationHistory]
,解决了问题。

听起来像是版本控制问题,您的代码运行的版本与创建迁移表的版本不同。我可能会尝试EF4.3(而不是5),看看它是否能解决问题。也许你可以把它隔离出来,看看这是否是根本原因。是的,在我的例子中,这绝对是一个版本控制问题——我之前(意外地)升级到EF6测试版,运行了它,然后降级回5.0稳定版。这在当时是有效的,但这显然是这个错误的根源。擦除了数据库并让EF重新创建,它再次工作。