Come posso convincere Linq-a-SQL a ignorare le colonne che vengono modificate dai trigger di inserimento?
-
04-10-2019 - |
Domanda
C'è una colonna su una delle mie tabelle che viene aggiornata da vari trigger di inserto/eliminazione nel mio database: i trigger eseguono alcuni calcoli in base al contenuto delle tabelle collegate e archiviano il risultato in una colonna sulla tabella di base per query più facili, ecc.
Linq-to-SQL sta lanciando un ChangeConflictException quando provo ad aggiornare queste tabelle, presumibilmente perché il trigger sta modificando questa colonna e quindi L2S pensa che ci sia un conflitto di dati.
Il comportamento esatto che sto cercando è il seguente:
- L2S dovrebbe recuperare questo valore di colonna quando si recano un oggetto
- L2S dovrebbe ignorare Le modifiche a questo valore di colonna: le modifiche apportate nel codice non devono essere persistendo nel DB
- I conflitti sul risparmio dovrebbero essere ignorati.
- (Se possibile) l'ultimo valore dovrebbe essere recuperato dal DB seguendo qualsiasi operazione di inserzione/aggiornamento, ma posso vivere senza questo se è difficile.
Qualcuno può aiutarmi a implementare questo comportamento in Linq-to-SQL?
Grazie,
Dylan
Soluzione
Dovresti configurare le colonne come generate automaticamente (proprio come fai con le chiavi primarie) in HE LINQ a SQL Designer. Ciò impedirà questi conflitti.