machinelearning
machinelearning copied to clipboard
[DatabaseLoader] Create higher level convenient methods for DatabaseLoader
As mentioned by Diego, these additions would help by simplifying the API usage for users even further and it should be pretty easy to implement for us: 👍
@divega commented: https://github.com/dotnet/machinelearning-samples/pull/617#pullrequestreview-284597248
@CESARDELATORRE, I did a deferred review. The experience seems pretty good.
1: And I agree with you that it could be even better with some sugar method that loads directly from the arguments of DatabaseSource.
2: I can also see other possible shortcuts of similar nature. For example, although DbProviderFactory is the all encompassing root concept if you need everything from an ADO.NET provider, a DbConnection can give you everything but DbConnectionStringBuilder, and it is a much more familiar abstraction for most users than the DbProviderFactory. So, unless you need to manipulate connection strings in a provider agnostic way (not commonly an useful thing to do), you could make the sugar Load method generic on the provider's DbConnection type. All in all, I would would love to meet with you and the devs and walk trough the product code and API. It is likely that more things like this will come up.
Hi @divega and @CESARDELATORRE
I am interested in this task. Could you please explain what sugar methods you want to have in more details? You wrote:
you could make the sugar Load method generic on the provider's DbConnection type
What providers type do you mean under
provider's DbConnection type
if I am correctly understand you, it is not the DbProviderFactory.
I can propose such methods:
public static IDataView Load<TData>(this DbConnection connection, string connectionString, string query, IHostEnvironment host)
or
public static IDataView Load<TData>(this DatabaseSource source, string connectionString, string query, IHostEnvironment host)
Thanks.