Наборы данных XSD и игнорирование внешних ключей
Вопрос
У меня есть довольно стандартная настройка таблицы в текущем приложении с использованием .СЕТЬ XSD DataSet
и TableAdapter
функции.Мой contracts
Таблица состоит из некоторой стандартной информации о контракте со столбцом для primary department
.Этот столбец представляет собой внешний ключ моему Departments
стол, где я храню основные department name
, id
, notes
.Это все настроено и работает в моем SQL-сервер.
Когда я использую инструмент XSD, я могу перетащить обе таблицы одновременно, и он автоматически обнаруживает/создает внешний ключ, который у меня есть между этими двумя таблицами.Это прекрасно работает, когда я нахожусь на главной странице и просматриваю данные контракта.
Однако, когда я захожу на свою административную страницу, чтобы изменить данные отдела, я обычно делаю что-то вроде этого:
Dim dtDepartment As New DepartmentDataTable()
Dim taDepartment As New DepartmentTableAdapter()
taDepartment.Fill(dtDepartment)
Однако в этот момент выдается исключение, говорящее о том, что здесь нарушена ссылка на внешний ключ, я предполагаю, что поскольку у меня нет Contract DataTable
заполненный.
Как я могу решить эту проблему?Я знаю, что могу просто удалить внешний ключ из XSD, чтобы все работало нормально, но иметь дополнительную проверку целостности и соответствие схемы XSD схеме SQL в базе данных — это хорошо.
Решение
Вы можете попробовать отключить проверочные ограничения в наборе данных (он находится в его свойствах) или изменить свойства этого отношения и изменить ключ на простую ссылку — на ваше усмотрение.