Skip to content

Add LoadFromDatabase convenience methods (#4182)#7666

Open
rAJt-11 wants to merge 1 commit into
dotnet:mainfrom
rAJt-11:feature/database-loader-loadfrom
Open

Add LoadFromDatabase convenience methods (#4182)#7666
rAJt-11 wants to merge 1 commit into
dotnet:mainfrom
rAJt-11:feature/database-loader-loadfrom

Conversation

@rAJt-11

@rAJt-11 rAJt-11 commented Jul 24, 2026

Copy link
Copy Markdown

Adds LoadFromDatabase extension methods on DataOperationsCatalog, mirroring the existing LoadFromTextFile convenience API. This collapses the current three-step database-loading pattern into a single call.

Before:
var loader = mlContext.Data.CreateDatabaseLoader();
var source = new DatabaseSource(SqlClientFactory.Instance, connString, "SELECT * FROM Iris");
var data = loader.Load(source);

After:
var data = mlContext.Data.LoadFromDatabase(SqlClientFactory.Instance, connString, "SELECT * FROM Iris");
LoadFromDatabase(DatabaseSource source)
LoadFromDatabase(DbProviderFactory providerFactory, string connectionString, string commandText)
LoadFromDatabase(DbProviderFactory providerFactory, string connectionString, string commandText, int commandTimeoutInSeconds)

Why this approach
I followed the established LoadFromTextFile pattern in TextLoaderSaverCatalog so the new API stays consistent with the rest of the catalog. The methods simply compose the existing CreateDatabaseLoader() and Load(DatabaseSource) no new loading logic and argument validation is delegated to the existing DatabaseSource constructor.

Tests
Added IrisVectorLightGbmUsingLoadFromDatabase to DatabaseLoaderTests.cs, exercising the new API end-to-end through a LightGBM training pipeline.

Add LoadFromDatabase<TInput> extension methods on DataOperationsCatalog
that combine CreateDatabaseLoader<TInput>() and Load(DatabaseSource) into
a single call, mirroring the existing LoadFromTextFile<TInput> sugar.
@rAJt-11

rAJt-11 commented Jul 24, 2026

Copy link
Copy Markdown
Author

@dotnet-policy-service agree

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant