Наборы данных XSD и игнорирование внешних ключей

У меня довольно стандартная таблица в текущем приложении с использованием .NET XSD DataSet и TableAdapter функции. Моя таблица contracts состоит из некоторой стандартной информации о контрактах со столбцом для primary department. Этот столбец является внешним ключом к моей таблице Departments, где я храню основные department name, id, notes . Все это настроено и работает на моем SQL Server.

Когда я использую инструмент XSD, я могу перетаскивать обе таблицы одновременно, и он автоматически обнаруживает/создает внешний ключ, который у меня есть между этими двумя таблицами. Это прекрасно работает, когда я нахожусь на своей главной странице и просматриваю данные контракта.

Однако, когда я перехожу на свою административную страницу, чтобы изменить данные отдела, я обычно делаю что-то вроде этого:

Dim dtDepartment As New DepartmentDataTable()
Dim taDepartment As New DepartmentTableAdapter()

taDepartment.Fill(dtDepartment)

Однако в этот момент выдается исключение, говорящее о том, что здесь нарушена ссылка на внешний ключ, я предполагаю, что у меня нет заполненного Contract DataTable.

Как я могу решить эту проблему? Я знаю, что могу просто удалить внешний ключ из XSD, чтобы все работало нормально, но иметь там дополнительную проверку целостности и соответствие схемы XSD схеме SQL в базе данных — это хорошо.


person Dillie-O    schedule 01.08.2008    source источник


Ответы (1)


Вы можете попробовать отключить Check-constraints для DataSet (это в его свойствах) или изменить свойства этого отношения и изменить ключ на простую ссылку - на ваше усмотрение.

person Greg Hurlman    schedule 01.08.2008
comment
Это свойство называется EnforceConstraints. - person gurkini; 01.08.2018