使用Create.Table,FluentMigrator时,将Constraint添加到Table列

All*_*ash 11 c# t-sql fluent-migrator

我正在使用FluentMigrator在DB中创建一个新表.在我创建之后,我意识到我需要在T-Sql中添加如下的约束:

假设我已经有一个表tableA

      Alter Table tableA
      Add Constraint ConstraintA CHECK(([ColA]>=(0) AND [ColA]<(100)))
Run Code Online (Sandbox Code Playgroud)

如何在.Net中使用FluentMigrator创建约束?我用谷歌搜索,没有找到任何答案.谢谢!

Kar*_*aie 14

这是在FluentMigrator中执行此操作的更惯用的方式

Create.UniqueConstraint("SalesIdAndUsername")
  .OnTable("users")
  .Columns("username", "SalesId");
Run Code Online (Sandbox Code Playgroud)

  • 对于UNIQUE约束来说,这一切都很好,但问题在于CHECK约束. (3认同)
  • 尽管它没有直接解决原始问题,但这正是我正在寻找的(问题标题不区分需要哪种类型的约束)。我希望人们在使用否决票选项时能够更加深思熟虑。在这种情况下,简单的不投票更为合适。 (2认同)
  • @JamesWilson 好吧,我也可以回答“42”,我可以向你保证这是一个非常重要问题的答案。但它仍然没有回答这个问题。只是开玩笑,但我试图使用这个答案来创建一个“CHECK”约束,但这个答案没有提供。Castrohenge 的另一个答案并不漂亮,但它是正确的。 (2认同)

Cas*_*nge 8

您可以在迁移中使用 Execute.Sql 方法执行原始 SQL。例如:

Execute.Sql("ALTER TABLE tableA ADD CONSTRAINT ConstraintA CHECK(([ColA]>=(0) AND [ColA]<(100)))");
Run Code Online (Sandbox Code Playgroud)