所以这很简单。我似乎无法在网上找到答案。
在Fluent Migrator中,我看到使用PrimaryKey()标记列的选项,但是我没有看到任何用于创建复合主键的内容。它看起来并不像PrimaryKey那样过载。
这可能吗?
base.Create.Table(tableName).WithColumn("Id").AsGuid().PrimaryKey().NotNullable().Unique()
.WithColumn("c1").AsGuid().NotNullable().Unique()
.WithColumn("c2").AsString().NotNullable()
.WithColumn("c3").AsString().NotNullable()
.WithColumn("c4").AsDateTime()
|> ignore
在此示例中,我想使用c2
和c3
作为复合主键
答案 0 :(得分:5)
在FluentMigrator中,您可以创建一个复合主键,如下所示:
Create.PrimaryKey("PK_Table").OnTable("Table").WithSchema("schemaname")
.Columns([|"Col1"; "Col2"|])
|> ignore
答案 1 :(得分:0)
我似乎记得您可以将PrimaryKey()
方法应用于多个列。因此,例如,使用c2和c3作为复合主键:
base.Create.Table(tableName)
.WithColumn("Id").AsGuid().NotNullable().Unique()
.WithColumn("c1").AsGuid().NotNullable().Unique()
.WithColumn("c2").AsString().NotNullable().PrimaryKey()
.WithColumn("c3").AsString().NotNullable().PrimaryKey()
.WithColumn("c4").AsDateTime()
|> ignore