|
|
|
|
@ -13,6 +13,7 @@ namespace EntityFrameworkCore.Jet.Data
|
|
|
|
|
private readonly dynamic _connection;
|
|
|
|
|
private readonly dynamic _catalog;
|
|
|
|
|
|
|
|
|
|
private bool _ignoreMsys;
|
|
|
|
|
public AdoxSchema(JetConnection connection, bool naturalOnly, bool readOnly)
|
|
|
|
|
: this(connection, readOnly)
|
|
|
|
|
{
|
|
|
|
|
@ -22,7 +23,7 @@ namespace EntityFrameworkCore.Jet.Data
|
|
|
|
|
public AdoxSchema(JetConnection connection, bool readOnly)
|
|
|
|
|
{
|
|
|
|
|
_connection = new ComObject("ADODB.Connection");
|
|
|
|
|
|
|
|
|
|
_ignoreMsys = connection.IgnoreMsys;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
var connectionString = GetOleDbConnectionString(connection.ActiveConnectionString);
|
|
|
|
|
@ -105,6 +106,11 @@ namespace EntityFrameworkCore.Jet.Data
|
|
|
|
|
|
|
|
|
|
var tableName = (string)table.Name;
|
|
|
|
|
|
|
|
|
|
if (tableName.StartsWith("MSys", StringComparison.OrdinalIgnoreCase) && _ignoreMsys)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Depending on the provider (ODBC or OLE DB) used, the Tables collection might contain VIEWs
|
|
|
|
|
// that take parameters, which makes them procedures.
|
|
|
|
|
// We make sure here, that we exclude any procedures from the returned table list.
|
|
|
|
|
@ -202,6 +208,11 @@ namespace EntityFrameworkCore.Jet.Data
|
|
|
|
|
using var table = tables[i];
|
|
|
|
|
var tableName = (string)table.Name;
|
|
|
|
|
|
|
|
|
|
if (tableName.StartsWith("MSys", StringComparison.OrdinalIgnoreCase) && _ignoreMsys)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
using var columns = table.Columns;
|
|
|
|
|
var columnCount = columns.Count;
|
|
|
|
|
|
|
|
|
|
@ -282,6 +293,11 @@ namespace EntityFrameworkCore.Jet.Data
|
|
|
|
|
using var table = tables[i];
|
|
|
|
|
var tableName = (string)table.Name;
|
|
|
|
|
|
|
|
|
|
if (tableName.StartsWith("MSys", StringComparison.OrdinalIgnoreCase) && _ignoreMsys)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
using var indexes = table.Indexes;
|
|
|
|
|
var indexCount = (int)indexes.Count;
|
|
|
|
|
|
|
|
|
|
@ -337,6 +353,11 @@ namespace EntityFrameworkCore.Jet.Data
|
|
|
|
|
using var table = tables[i];
|
|
|
|
|
var tableName = (string)table.Name;
|
|
|
|
|
|
|
|
|
|
if (tableName.StartsWith("MSys", StringComparison.OrdinalIgnoreCase) && _ignoreMsys)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
using var indexes = table.Indexes;
|
|
|
|
|
var indexCount = (int)indexes.Count;
|
|
|
|
|
|
|
|
|
|
@ -384,6 +405,11 @@ namespace EntityFrameworkCore.Jet.Data
|
|
|
|
|
using var table = tables[i];
|
|
|
|
|
var referencingTableName = (string)table.Name;
|
|
|
|
|
|
|
|
|
|
if (table.Name.StartsWith("MSys", StringComparison.OrdinalIgnoreCase) && _ignoreMsys)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
using var keys = table.Keys;
|
|
|
|
|
var keyCount = (int)keys.Count;
|
|
|
|
|
|
|
|
|
|
@ -446,6 +472,11 @@ namespace EntityFrameworkCore.Jet.Data
|
|
|
|
|
{
|
|
|
|
|
using var table = tables[i];
|
|
|
|
|
|
|
|
|
|
if (table.Name.StartsWith("MSys", StringComparison.OrdinalIgnoreCase) && _ignoreMsys)
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
using var keys = table.Keys;
|
|
|
|
|
var keyCount = (int)keys.Count;
|
|
|
|
|
|
|
|
|
|
|