Ho il seguente problema -
Circa ~ 60 tabelle su SQL che alcuni hanno una chiave esterna l'una con l'altra, la chiave primaria come identità doveva cambiare con qualcos'altro con la logica. È stato sostituito da trigger che controllano qual è il numero successivo e modificano il campo della chiave primaria (in sequenza)
Ora questo fa molti problemi con EF quando provi ad inserire una nuova identità:
-
Per aggiornare le chiavi esterne, devo recuperare l'entità dal DB perché la chiave primaria non si aggiorna.
-
Quando aggiungo più di un'entità, l'EF genera un'eccezione sul fatto che la chiave primaria non è univoca. (Riceve il valore predefinito nel mio caso 0 per int)
La soluzione per 1 è valida solo se ho altri campi univoci che posso recuperare l'entità dal DB.
La migliore soluzione per 2 che potrei ricavare è usare l'entità di stacco dopo ogni inserto.
Entrambi non sono ottimali, per non dire altro.
Sarebbe lieto di sapere se esiste un'altra soluzione / un altro approccio invece dei trigger.
A questo punto non posso modificare la struttura delle tabelle sul database, solo le manipolazioni sul campo della chiave primaria.
Supplemento:
Gli ID generati automaticamente sono stati abbandonati per eliminare i duplicati in questo campo, poiché queste tabelle verranno eseguite su diversi db che vengono uniti di volta in volta.