powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как временно отключить Relation в DataSet'е?
2 сообщений из 2, страница 1 из 1
Как временно отключить Relation в DataSet'е?
    #35194755
SergASh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем.

Есть типизированный DataSet, в котором для связей задана опция "Both Relation and Foreign Key Constraint".
Сначала все записи добавляются программно. Потом по очереди для каждой таблицы вызывается такой код
Код: plaintext
1.
2.
3.
4.
ClientUserTableAdapter taClientUser = new ClientUserTableAdapter();
taClientUser.Connection = connection;
taClientUser.Transaction = transaction;
taClientUser.Update( ds.ClientUser ); // ds - это и есть заполненный dataset

Проблема в том, что если рассматривать схему данных как граф, то на нём есть пара вершин-таблиц, которая соединена двумя путями. Не напрямую, конечно, а через другие разные таблицы.

Мне нужно как-то добиться того, чтобы в определённый момент остался только один из этих путей, то есть нужно временно отключить один ForeignKey (иначе при применении обновлений к базе возникает исключение, потому что система пытается распространить полученное identity-значение по всей схеме датасета, но однозначно сделать это нельзя из-за двух путей).

Как именно отключить не понятно. Вот такой способ ничего не даёт, ключ всё равно проверяется

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ProgramTableAdapter taProgram = new ProgramTableAdapter();
taProgram.Connection = connection;
taProgram.Transaction = transaction;

DataRelation relation = ds.Relations["FK_ProgramSitePoc_ProgramClientUser"];
ds.Relations.Remove( relation );

taProgram.Update( ds.Program );

ds.Relations.Add( relation );

Спасибо
...
Рейтинг: 0 / 0
Как временно отключить Relation в DataSet'е?
    #35195407
Bill Great
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 /topic/499380&hl=
2 dataSet.EnforceConstraints=false;
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как временно отключить Relation в DataSet'е?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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