Question: I have a pretty standard table set-up in a current application using the .NET XSD
DataSet
and
TableAdapter
features. My
contracts
table consists of some standard contract information, with a column for the
primary department
. This column is a foreign key to my
Departments
table, where I store the basic
department name
,
id
,
notes
. This is all setup and functioning in my SQL Server.
When I use the XSD tool, I can drag both tables in at once and it
auto detects/creates the foreign key I have between these two tables.
This works great when I'm on my main page and am viewing contract data.
However, when I go to my administrative page to modify the department data. I typically do something like this:
Dim dtDepartment As New DepartmentDataTable()
Dim taDepartment As New DepartmentTableAdapter()
taDepartment.Fill(dtDepartment)
However, at this point an exception is thrown saying to the effect
that there is a foreign key reference broken here, I'm guessing since I
don't have the
Contract
DataTable
filled.
How can I fix this problem? I know I can simply remove the foreign
key from the XSD to make things work fine, but having the additional
integrity check there and having the XSD schema match the SQL schema in
the database is nice.
Solution: You can try turning Check-constraints off on the DataSet (it's in its
properties), or altering the properties of that relationship, and change
the key to a simple reference - up to you.