【发布时间】:2019-05-16 16:57:59
【问题描述】:
我已经使用本地数据库上已应用的迁移更新了暂存数据库。但是一些迁移并没有对数据库进行更改,尽管 update-database 过程顺利进行并表示更改已应用。
我已经把输出放在这个file
虽然输出清楚地表明已应用更改,但当我检查数据库时,ExportCSV 和 ExportCSV2 都明显缺少字段 M9、M10 A4-A20,添加了一些字段如 TI1 或 I1,但仍有一些字段。
我试图回滚到最后一个良好的迁移错误并想在暂存数据库上运行 add-migration 但我得到了这个
Error Number:257,State:3,Class:16
Implicit conversion from data type datetime to int is not allowed. Use the CONVERT function to run this query.
首先,如果我可以回滚数据库,那就太好了。
任何建议将不胜感激!
【问题讨论】:
-
您需要授予权限才能查看您的共享文件。照原样,我无法查看它。
-
可能在您的脚本中将 int 字段值转换为日期时间,因为您遇到了这个问题。如 ISNULL(IntField, GETDATE()) 或 CAST(IntField to datetime) 等。
-
@LaughingVergil Vergil 抱歉,没有注意到只有我的公司可以共享文档。更改了您现在可以看到的链接。
-
@NP007 实际上数据库中的日期时间是日期时间,当我回滚迁移时试图将其转换为 int。向上方法
AlterColumn("dbo.ExportCSV", "P1FanContacted", c => c.DateTime()); AlterColumn("dbo.ExportCSV", "P2FanContacted", c => c.DateTime()); AlterColumn("dbo.ExportCSV", "P3FanContacted", c => c.DateTime());向下方法AlterColumn("dbo.ExportCSV", "P3FanContacted", c => c.Int()); AlterColumn("dbo.ExportCSV", "P2FanContacted", c => c.Int()); AlterColumn("dbo.ExportCSV", "P1FanContacted", c => c.Int());
标签: c# sql-server ef-code-first entity-framework-migrations