powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Чтение ключей из БД
4 сообщений из 4, страница 1 из 1
Чтение ключей из БД
    #35285078
Здравствуйте.
возможно этот вопрос уже поднимался, тогда дайте ссылочку.

Есть DataSet в который при подключении к серверу загружается схема с помощью DataSet.FillShema. Предварительно настраивается Mappings получив список таблиц в БД

DataTable shemaTable = sqlConnection.GetSchema(TablesSchemaCollectionName);

Но к сожалению такая операция (DataSet.FillShema) не загружает отношения между таблицами для настройки Relations в DataSet.

Ручками прописать отношения можно, но очень не желательно, т.к. приложение универсальное и типы таблиц с которыми ему нужно работать на этапе компиляции не определено.

Возможно ли получить из БД список ключей для последущей настройки DataSet?

Сервер MS SQL 2005

Спасибо.
...
Рейтинг: 0 / 0
Чтение ключей из БД
    #35285316
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно :)
...
Рейтинг: 0 / 0
Чтение ключей из БД
    #35285352
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где же вопрос: "А как?" ???
А вот так, например:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
select t1.constraint_object_id AS id, t3.name AS PKTABLE_OWNER, t2.name AS PKTABLE_NAME, t21.name AS PKCOLUMN_NAME,
	t5.name AS FKTABLE_OWNER, t4.name AS FKTABLE_NAME, t41.name AS FKCOLUMN_NAME 
from sys.foreign_key_columns t1 
	inner join sys.objects t2 on t2.object_id = t1.parent_object_id 
	inner join sys.schemas t3 on t2.schema_id = t3.schema_id 
	inner join sys.columns t21 on t21.object_id = t2.object_id and t21.column_id = t1.parent_column_id 
	inner join sys.objects t4 on t4.object_id = t1.referenced_object_id 
	inner join sys.schemas t5 on t5.schema_id = t4.schema_id 
	inner join sys.columns t41 on t41.object_id = t4.object_id and t41.column_id = t1.referenced_column_id 
where EXISTS (select  1  from information_schema.tables s 
				where s.TABLE_SCHEMA=t5.name and s.table_name = t4.name 
					and s.table_type = 'Base table' ) 
order by t1.constraint_object_id, t1.constraint_column_id
...
Рейтинг: 0 / 0
Чтение ключей из БД
    #35285627
Спасибо огромное, это то, что нужно.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Чтение ключей из БД
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]