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

时间:2013-08-28 00:32:55

标签: c# fluent-migrator

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

public static ICreateTableColumnOptionOrWithColumnSyntax WithUser(this ICreateTableWithColumnSyntax tableWithColumnSyntax)
{
    return tableWithColumnSyntax
        .WithColumn("UserId")
            .AsInt32()
            .Nullable();
}

以下是使用它的示例表:

Create.Table("UserSettings")
    .WithUser()
    .WithColumn("SomeValue")
        .AsString(1)
        .Nullable();

然后我必须每次都手动添加一个外键:

Create.ForeignKey()
    .FromTable("UserSettings")
       .ForeignColumn("UserID")
   .ToTable("Users")
       .PrimaryColumn("Id");

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

1 个答案:

答案 0 :(得分:12)

最终比预期更容易。以下是执行此操作的代码:

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

我希望在某处更好地记录这一点。