Database in rete

di il
16 risposte

16 Risposte - Pagina 2

  • Re: Database in rete

    16/07/2023 - PiGi78 ha scritto:


    Ciao

    Mi unisco al discorso di Fabio Caruso e credo il problema sia nell'uso improprio di EntityFramework.

    Credo però il problema risieda più nella lettura che nella scrittura, perchè affermi che riavviando il processo nella macchina B il dato lo leggi correttamente (per cui i dati sul DB sono stati scritti e committati).

    Non so se lo sapevi, però EntityFramework cerca di ottimizare le letture. Pertanto, se ha portato in memoria una tabella (DbSet di entità), poi non la legge più dal database ma ritorna quella che ha in memoria.

    Che sappia io ci sono due alternative:

    1. Attivi un'opzione in fase di configurazione di EntityFramework per obbligare a leggere sempre dal DB (non ricordo quale sia)
    2. Forzi di tanto in tanto il db a fare un Reload del tuo DbSet (ci dovrebbe proprio essere la funzione “Reload”, tipo DbContext.Fornitori.Reload() )

    Deve bloccare il record aperto da altri utenti.

    Supponiamo di essere sul cliente pippo srl e un utente modifica Pippo srl in pippo snc, nel frattempo un altro utente lo modifica in Pippo spa a quel punto l'utente pensa ad un virus che gli modifica i dati.piuttosto un controllo con il messaggio “un utente ha modificato il record” sarebbe la soluzione migliore E questa è la migliore delle ipotesi, se piuttosto che modificare sta cancellando il record, l'altro utente si vedrebbe sparire il dato.

  • Re: Database in rete

    14/07/2023 - ducas ha scritto:


    l modo da prendermi il valore corretto da macchina2 senza dover uscire e rientrare dal software.

    Qualcuno sa come potermi aiutare per favore?

    Senza vedere il codice e' impossibile capire cosa non vada

Devi accedere o registrarti per scrivere nel forum
16 risposte