Я пишу приложение, которое использует ADO.NET OLEDB провайдера. База данных - это доступ. Большая часть взаимодействия с БД осуществляется через SQL-запросы DDL / DML.
Теперь мне нужно создать связанные таблицы, и, кажется, не существует способа сделать это только с ADO.NET. Ни в простом запросе DDL, ни в попытках напрямую манипулировать системными таблицами Access.
Я пытаюсь избежать использования ADOX, с дополнительной ссылкой / зависимостью в моем приложении. Кто-нибудь знает способ обойти это? Очень ценится.
Вот как я сейчас создаю связанные таблицы с помощью ADOX.
using ADOX;
public static void CreateLinkedTable(string sourceDB, string sourceTable, string targetDB, string targetTable)
{
Catalog cat = new Catalog();
cat.let_ActiveConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + targetDB);
Table table = new Table();
table.Name = targetTable;
table.let_ParentCatalog(cat);
table.Properties["Jet OLEDB:Create Link"].Value = true;
table.Properties["Jet OLEDB:Link Datasource"].Value = sourceDB;
table.Properties["Jet OLEDB:Remote Table Name"].Value = sourceTable;
cat.Tables.Append(table);
}