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

时间:2013-06-07 12:51:08

标签: entity-framework-4 migration

我正在尝试使用Entity Framework和Code First Migrations在开发服务器上更新我的数据库(它在本地计算机上运行良好)。我使用命令update-database -Script -SourceMigration:201305161422570_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.

之前我从未遇到过这个错误,但我发现它很奇怪,因为我的__MigrationHistory表没有列CreatedOn,也没有尝试将任何内容放入名为该列的列中。这是我的一个插入语句:

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

我不确定从哪里开始,有人有任何建议吗?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

回顾wagregg的错误和建议,我意识到生成的脚本在master.dbo.MigrationHistory中寻找我的__MigrationHistory表,但实际上并不是这样。

我将每个引用从[__MigrationHistory]更改为[EnterpriseWebDB].[dbo].[__MigrationHistory],并解决了问题。