7

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

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()这样我(更重要的是,我团队中的其他人)不必每次都指定它?

4

1 回答 1

13

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

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

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

于 2013-08-30T15:54:21.083 回答