我如何在Fluent Migration中更改包含默认当前日期时间值的列?
所以我需要像这样的东西:
ALTER TABLE database ADD column DATETIME DEFAULT GETDATE() NOT NULL;
只能用于Fluent Migration。谢谢。
我如何在Fluent Migration中更改包含默认当前日期时间值的列?
所以我需要像这样的东西:
ALTER TABLE database ADD column DATETIME DEFAULT GETDATE() NOT NULL;
只能用于Fluent Migration。谢谢。
由于答案实际上没有包含任何代码:
Create.Table(nameof(Report))
.WithColumn(nameof(Report.Id)).AsInt32().NotNullable().PrimaryKey().Identity()
.WithColumn(nameof(Report.CreatedAt)).AsDateTime().Nullable()
.WithDefault(SystemMethods.CurrentDateTime);
WithDefault(SystemMethods)
方法是解决方案。
NotNullable()
。 - Chris Marisic你可能已经找到了有关SystemMethods的文档。我刚刚更新了它,以反映FluentMigrator的最新版本。
需要指出的是,这些方法是特定于数据库的,只有Sql Server实现了所有五个SystemMethods。这使得你的迁移变得不太可移植,因为生成的SQL不再是标准的SQL,而且其他数据库不支持某些SystemMethods(例如,在MySql中似乎无法使用CurrentUser)。
如果您认为需要其他方法,请在FluentMigrator的Github网站上记录问题,我们将尝试添加它。