【发布时间】:2020-12-04 22:41:44
【问题描述】:
我在 Oracle 中有一个数据集市,我试图通过 ML.NET 的 DatabaseSource 连接器连接。 documentation 中的示例显示了如何连接到 SQL 数据库,如下所示:
string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=<YOUR-DB-FILEPATH>;Database=<YOUR-DB-NAME>;Integrated Security=True;Connect Timeout=30";
string sqlCommand = "SELECT Size, CAST(NumBed as REAL) as NumBed, Price FROM House";
DatabaseSource dbSource = new DatabaseSource(SqlClientFactory.Instance, connectionString, sqlCommand);
但是,连接到 Oracle 似乎并不那么简单。 Oracle 的docs 表示我需要获取Oracle.DataAccess.dll,然后我需要加载 DbProviderFactory 类似于:
var factory = DbProviderFactories.GetFactory("My Invariant Name");
DatabaseSource dbSource = new DatabaseSource(factory, connectionString, sqlCommand);
我试过这个,但是 (1) 在按照文档中的说明安装 Oracle Universal Installer 之后,(2) 尝试加载 DbProviderFactory 我收到一条错误消息,指出“指定的不变名称 'Oracle.DataAccess.dll'在已注册的 .NET 数据提供者列表中找不到。”
当似乎有各种官方 Oracle NuGet 包时,整个方法感觉不必要地复杂,这与我正在阅读的文档(使用 Oracle 通用安装程序)相矛盾。但是我不确定如何将它与 ML.NET DataBaseSource 一起使用。
【问题讨论】: