我可以使用扩展方法使用Fluent Migrator添加列和外键约束吗?

Jar*_*red 6 c# fluent-migrator

我有一个由几个表使用的扩展方法:

public static ICreateTableColumnOptionOrWithColumnSyntax WithUser(this ICreateTableWithColumnSyntax tableWithColumnSyntax)
{
    return tableWithColumnSyntax
        .WithColumn("UserId")
            .AsInt32()
            .Nullable();
}
Run Code Online (Sandbox Code Playgroud)

这是一个使用它的示例表:

Create.Table("UserSettings")
    .WithUser()
    .WithColumn("SomeValue")
        .AsString(1)
        .Nullable();
Run Code Online (Sandbox Code Playgroud)

然后我必须每次手动添加一个外键,如下所示:

Create.ForeignKey()
    .FromTable("UserSettings")
       .ForeignColumn("UserID")
   .ToTable("Users")
       .PrimaryColumn("Id");
Run Code Online (Sandbox Code Playgroud)

有没有办法在扩展方法中打包外键声明,WithUser()以便我(更重要的是,我的团队中的其他人)不必每次都指定它?

Jar*_*red 12

这最终比预期的要容易.这是执行此操作的代码:

public static ICreateTableColumnOptionOrWithColumnSyntax WithUser(this ICreateTableWithColumnSyntax tableWithColumnSyntax)
{
    return tableWithColumnSyntax
        .WithColumn("UserId")
            .AsInt32()
            .Nullable()
            .ForeignKey("Users", "Id");
}
Run Code Online (Sandbox Code Playgroud)

我只是希望在某处更好地记录.