aboutsummaryrefslogtreecommitdiff
path: root/lib/VNLib.Plugins.Extensions.Loading.Sql/src
diff options
context:
space:
mode:
authorLibravatar vnugent <public@vaughnnugent.com>2024-03-30 22:22:43 -0400
committerLibravatar vnugent <public@vaughnnugent.com>2024-03-30 22:22:43 -0400
commit40c634b0f37ce9922dbc32c86e26d5a771daeca3 (patch)
tree9fc0d15f77c2646c85a3debf640ff540ee10c5e1 /lib/VNLib.Plugins.Extensions.Loading.Sql/src
parent1d4f8d80582083e51807a4ae20eb5da2254bda03 (diff)
feat: Update modern SQLServer, add some DBBuilder extensions
Diffstat (limited to 'lib/VNLib.Plugins.Extensions.Loading.Sql/src')
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading.Sql/src/DbBuilder.cs2
-rw-r--r--lib/VNLib.Plugins.Extensions.Loading.Sql/src/SqlDbConnectionLoader.cs35
2 files changed, 36 insertions, 1 deletions
diff --git a/lib/VNLib.Plugins.Extensions.Loading.Sql/src/DbBuilder.cs b/lib/VNLib.Plugins.Extensions.Loading.Sql/src/DbBuilder.cs
index 44d4670..a82fdfa 100644
--- a/lib/VNLib.Plugins.Extensions.Loading.Sql/src/DbBuilder.cs
+++ b/lib/VNLib.Plugins.Extensions.Loading.Sql/src/DbBuilder.cs
@@ -125,7 +125,7 @@ namespace VNLib.Plugins.Extensions.Loading.Sql
if (maxLen.HasValue)
{
- col.MaxLength = maxLen.Value;
+ col.MaxLength(maxLen.Value);
}
//Store the column
diff --git a/lib/VNLib.Plugins.Extensions.Loading.Sql/src/SqlDbConnectionLoader.cs b/lib/VNLib.Plugins.Extensions.Loading.Sql/src/SqlDbConnectionLoader.cs
index b48ddd1..6f150c8 100644
--- a/lib/VNLib.Plugins.Extensions.Loading.Sql/src/SqlDbConnectionLoader.cs
+++ b/lib/VNLib.Plugins.Extensions.Loading.Sql/src/SqlDbConnectionLoader.cs
@@ -210,5 +210,40 @@ namespace VNLib.Plugins.Extensions.Loading.Sql
//All done!
plugin.Log.Debug("Successfully created tables for {type}", typeof(T).Name);
}
+
+ /// <summary>
+ /// A helper method to define a table for a <see cref="IDbContextBuilder"/>
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="builder"></param>
+ /// <param name="tableName">The optional name of the table to create</param>
+ /// <param name="callback">The table creation callback function</param>
+ /// <returns>The original context builder instance</returns>
+ /// <exception cref="ArgumentNullException"></exception>
+ public static IDbContextBuilder DefineTable<T>(this IDbContextBuilder builder, string tableName, Action<IDbTableBuilder<T>> callback)
+ {
+ ArgumentNullException.ThrowIfNull(builder);
+ ArgumentNullException.ThrowIfNull(callback);
+
+ callback(builder.DefineTable<T>(tableName));
+ return builder;
+ }
+
+ /// <summary>
+ /// A helper method to define a table for a <see cref="IDbContextBuilder"/>
+ /// </summary>
+ /// <typeparam name="T"></typeparam>
+ /// <param name="builder"></param>
+ /// <param name="callback">The table creation callback function</param>
+ /// <returns>The original context builder instance</returns>
+ /// <exception cref="ArgumentNullException"></exception>
+ public static IDbContextBuilder DefineTable<T>(this IDbContextBuilder builder, Action<IDbTableBuilder<T>> callback)
+ {
+ ArgumentNullException.ThrowIfNull(builder);
+ ArgumentNullException.ThrowIfNull(callback);
+
+ callback(builder.DefineTable<T>());
+ return builder;
+ }
}
}