XSD Datastelle en ignoreer buitelandse sleutels
Vra
Ek het'n redelik standaard tafel set-up in'n huidige aansoek met behulp van die .NETTO XSD DataSet
en TableAdapter
kenmerke.My contracts
tabel bestaan uit'n paar standaard kontrak inligting, met'n kolom vir die primary department
.Hierdie kolom is'n buitelandse sleutel na my Departments
tafel, waar ek die stoor van die basiese department name
, id
, notes
.Dit is al die opset en funksionering in my SQL Server.
Wanneer ek gebruik die XSD instrument, kan ek sleep beide tafels in'n keer en dit outomaties bespeur/skep die vreemde sleutel ek het tussen hierdie twee tafels.Dit werk baie goed wanneer ek op my hoofblad en is die lees van die kontrak data.
Egter, wanneer ek gaan na my administratiewe bladsy om te verander die departement data, wat ek gewoonlik doen iets soos hierdie:
Dim dtDepartment As New DepartmentDataTable()
Dim taDepartment As New DepartmentTableAdapter()
taDepartment.Fill(dtDepartment)
Maar op hierdie punt'n uitsondering is gegooi en gesê: tot die effek dat daar is'n vreemde sleutel verwysing gebreek hier, ek vermoed, want ek het nie die Contract DataTable
gevul.
Hoe kan ek hierdie probleem oplos?Ek weet ek kan net verwyder die vreemde sleutel van die XSD om dinge te maak werk goed, maar met die bykomende integriteit kyk daar en met die XSD skedule ooreenstem met die SQL-skema in die databasis is lekker.
Oplossing
Jy kan probeer om die draai Check-beperkings op die DataSet (dit is in sy eienskappe), of die verandering van die eienskappe van daardie verhouding, en verander die sleutel tot'n eenvoudige verwysing - up aan jou.