I have an extension method that is used by several tables:
public static ICreateTableColumnOptionOrWithColumnSyntax WithUser(this ICreateTableWithColumnSyntax tableWithColumnSyntax)
{
return tableWithColumnSyntax
.WithColumn("UserId")
.AsInt32()
.Nullable();
}
Here is an example table using it:
Create.Table("UserSettings")
.WithUser()
.WithColumn("SomeValue")
.AsString(1)
.Nullable();
I then have to add a foreign key manually every time like so:
Create.ForeignKey()
.FromTable("UserSettings")
.ForeignColumn("UserID")
.ToTable("Users")
.PrimaryColumn("Id");
Is there a way to package the foreign key declaration in the extension method WithUser()
so that I (and more importantly, other people on my team) don't have to specify it every time?
This ended up being easier than expected. Here is the code to do this:
I just wish this was better documented somewhere.