我有一个由多个表使用的扩展方法:
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()
中打包外键声明,以便我(更重要的是,我的团队中的其他人)不必指定它每一次?
答案 0 :(得分:12)
最终比预期更容易。以下是执行此操作的代码:
public static ICreateTableColumnOptionOrWithColumnSyntax WithUser(this ICreateTableWithColumnSyntax tableWithColumnSyntax)
{
return tableWithColumnSyntax
.WithColumn("UserId")
.AsInt32()
.Nullable()
.ForeignKey("Users", "Id");
}
我希望在某处更好地记录这一点。