XSD DataSets en het negeren van foreign keys

stemmen
26

Ik heb een vrij standaard tafel set-up in een huidige applicatie met behulp van de NET XSD DataSet en TableAdapterfuncties. Mijn contractstabel bestaat uit een aantal standaard contract informatie, met een kolom voor het primary department. Deze kolom is een foreign key aan mijn Departmentstafel, waar ik op te slaan de basis department name, id, notes. Dit is al opstelling en het functioneren in mijn SQL Server .

Wanneer ik de XSD tool, kan ik beide tabellen te slepen in een keer en het automatisch detecteert / creëert de externe sleutel Ik heb tussen deze twee tabellen. Dit werkt prima als ik op mijn hoofdpagina en ik ben het bekijken van contractgegevens.

Echter, toen ik naar mijn administratieve pagina naar de afdeling gegevens te wijzigen. Ik typisch iets doen als dit:

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

taDepartment.Fill(dtDepartment)

Echter, op dit punt een uitzondering wordt gegooid zeggen in die zin dat er een foreign key verwijzing hier gebroken, ik gok want ik heb niet de Contract DataTablegevuld.

Hoe kan ik dit probleem op te lossen? Ik weet dat ik kan gewoon verwijderen van de vreemde sleutel uit het XSD om dingen te laten werken prima, maar met de extra integriteitscontrole daar en het hebben van de XSD-schema overeenkomen met de SQL-schema in de database is leuk.

De vraag is gesteld op 01/08/2008 om 17:33
bron van user
In andere talen...                            


2 antwoorden

stemmen
10

U kunt proberen te draaien in- en beperkingen af ​​op de DataSet (het is in de eigenschappen), of het veranderen van de eigenschappen van die relatie, en verander de sleutel tot een eenvoudige verwijzing - aan jou.

antwoordde op 01/08/2008 om 20:52
bron van user

stemmen
0

Schakel Check-Constraintsin het menu eigenschappen, het is de beste methode!

antwoordde op 28/12/2017 om 05:36
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more