Поиск связей таблиц РСУБД с использованием схем SqlConnectionC#

Место общения программистов C#
Anonymous
Поиск связей таблиц РСУБД с использованием схем SqlConnection

Сообщение Anonymous »

Я пишу приложение на .NET 8 и использую базу данных Northwind для создания хранимых процедур, классов POCO сущностей, оболочек хранимых процедур, контроллеров и т. д.
Диаграмма связей с базой данных:
Изображение
В Чтобы определить связи между таблицами, я запрашиваю схему следующим образом:

Код: Выделить всё

using var connection = new SqlConnection(connectionString);
await connection.OpenAsync();
var schemaTables = await connection.GetSchemaAsync("Tables");
var schemaColumns = await connection.GetSchemaAsync("Columns");
var schemaForeignKeys = await connection.GetSchemaAsync("ForeignKeys");
var schemaIndexes = await connection.GetSchemaAsync("Indexes");
var schemaXXX = await connection.GetSchemaAsync("XXX");
/* Process [schemaXXX]... */
Хотя я могу создавать таблицы, столбцы и т. д., схема ForeignKeys не имеет обоих концов связи. Рассмотрим следующие результаты:
Схема: ForeignKeys
Изображение
< /p>
Схема: Индексы
Изображение

Как я мог получить что-то вроде следующего:

Код: Выделить всё

TYPE        PRINCIPLE       DEPENDENT
OneToMany   Department.Id   Employee.DepartmentId
OneToMany   Employee.Id     Employee.ReportsTo
Обратите внимание, что меня не интересует подход «сначала база данных», EntityFramework или другие ORM. Мне нужно самому создать классы POCO сущностей, используя SqlConnection.GetSchema.
В конечном итоге я также рассматриваю возможность использования объектов управления SQL Server, но застрял с ADO . NET на данный момент.

Подробнее здесь: https://stackoverflow.com/questions/790 ... on-schemas

Вернуться в «C#»