XSD DataSets и игнорирование внешних ключей - PullRequest
30 голосов
/ 01 августа 2008

У меня довольно стандартная таблица настроек в текущем приложении, использующая функции .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 в базе данных - это хорошо.

1 Ответ

11 голосов
/ 01 августа 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...