Sto progettando un programma di utilità che caricherà i dati in un database SQL Server legacy.
Ho cercato di prendere in giro una semplice utility WinForms con C # usando i connettori DataSource (Ho provato un approccio diretto per ORM Entity Framework, ma avevo problemi in quanto il db segue alcune convenzioni).
Sto riscontrando particolari difficoltà nello stabilire relazioni parent / child e visualizzarle con le griglie di dati (cioè, fare clic su questa riga e la griglia figlio viene filtrata).
Alcuni esempi di sfide del database:
-
Nessuna chiave esterna con vincoli referenziali. Quello che normalmente sarebbe una chiave esterna viene visualizzato come parte della chiave composita primaria nella tabella "figlio". A volte con diversi tipi di dati (ad esempio, doppio anziché lungo)
-
A volte una chiave composta viene usata su una tabella genitrice per definire l'entità, ma solo uno di quei campi compositi compare in una tabella "figlio".
{dbo.Parent Key = [ParentID, ParentGroupID, OtherField], dbo.Child Key = [ChildID, ParentID]}
-
Le convenzioni di denominazione sono inesistenti.
Cose come questa rendono difficile legare i set di dati alle griglie di dati padre / figlio e utilizzare alcune delle altre funzionalità che .NET offre.
Come affrontare le sfide precedenti?
Ho provato a guardare alcune vecchie esercitazioni su ADO.Net ma a volte i metodi sono cambiati o non sono più disponibili ...