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

7

我有一个扩展方法,被多个表使用:

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

以下是一个使用IT技术的示例表格:

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

我需要手动添加外键,操作步骤如下:
Create.ForeignKey()
    .FromTable("UserSettings")
       .ForeignColumn("UserID")
   .ToTable("Users")
       .PrimaryColumn("Id");

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


有人有想法吗? - Jared
1个回答

13

这比预期的要简单。这里是完成此操作的代码:

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

我只是希望这个东西在某处有更好的记录。


请随意将此内容添加到FluentMigrator维基中。它对所有人开放。 - Daniel Lee
正是我所需要的,七年后,谢谢Jared。 - Martin Hansen Lennox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接