Qualcuno può dirmi se/come è possibile convalidare le modifiche in un contesto dati in Linq2Sql prima di chiamando SubmitChanges(). La situazione che ho è che creo un contesto, eseguo più operazioni e aggiungo molti inserti insieme ad altre attività di elaborazione e poi eseguo il rollback se l'invio fallisce.Convalidare Linq2Sql prima di SubmitChanges()
Quello che preferirei fare è fare una specie di chiamata "Validate()" dopo che certe attività sono state fatte in modo che possa gestirlo prima di inviare l'intero lavoro.
mai notato il .GetChangeSet() metodo prima! Grazie per quello! +1 – StevenMcD
L'approccio effettivo con cui ho avuto a che fare è stato creare una classe parziale con il nome della tabella e implementare il codice di convalida in OnFooChanging() per i campi che volevo convalidare. Funziona per generare eccezioni immediatamente quando il valore è impostato anziché su SubmitChanges(). Non ho usato il ChangeSet ma mi ha indirizzato nella giusta direzione ed è utile saperlo comunque. –
@Nick - Mi sento inutile dirti questo perché non riesco a ricordare il blog in cui l'ho letto, ma a quanto pare è una buona idea mantenere la convalida separata dai gestori "OnChange", perché consente scenari di convalida complessi, dove la convalida di una proprietà dipende dal valore degli altri, ecc. – Mark