public static void CreateForeignKey <TSource, TForeign>(this IDbConnection db, Expression <Func <TSource, object> > sourceField, Expression <Func <TForeign, object> > foreignField) { string sourceFieldName = ModelDefinition <TSource> .Definition.GetFieldDefinition(sourceField).FieldName; string foreignFieldName = ModelDefinition <TForeign> .Definition.GetFieldDefinition(foreignField).FieldName; db.AddForeignKey(sourceField, foreignField, OnFkOption.NoAction, OnFkOption.NoAction, $"{typeof(TSource).TableName()}_{typeof(TForeign).TableName()}_{sourceFieldName}_{foreignFieldName}"); }