我有一个包含默认值列的表:
this.Create.Table("msgqueue")
.WithColumn("id")
.AsInt32()
.Identity()
.PrimaryKey()
.WithColumn("queueddt")
.AsDateTime()
.Nullable()
.WithDefaultValue(SystemMethods.CurrentDateTime)
;
我想将其从datetime更改为datetime:
this.Alter.Table("msgqueue")
.AlterColumn("queueddt")
.AsCustom("datetime2")
.Nullable()
.WithDefaultValue(SystemMethods.CurrentDateTime)
;
这给了我错误:
The error was The object 'DF_msgqueue_queueddt' is dependent on column 'queueddt'.
我做了一些谷歌搜索,并发现了Delete.DefaultConstraint(),所以我尝试了,首先:
this.Delete.DefaultConstraint()
.OnTable("msgqueue")
.OnColumn("msgqueue")
;
我仍然看到同样的问题。
答案 0 :(得分:0)
在Alter Table语句之前尝试使用Execute.Sql删除默认约束:
Execute.Sql(@"ALTER TABLE msgqueue DROP CONSTRAINT DF_msgqueue_queueddt")
此外,您的列名在上一个语句中是错误的。它应该是:
this.Delete.DefaultConstraint()
.OnTable("msgqueue")
.OnColumn("queueddt");