Un InMemoryDatabase è adatto per i dati in tempo reale dell'archivio?

0

Sto imparando ASP.NET Core 2, con Entity Framework Core. Un vero scenario d'uso è una piccola gestione di un processo di produzione. Ho una tabella persistente come clienti, ordini, macchine, ecc ... ma ho anche alcune tabelle "live".

Esempio: lo stato corrente delle macchine. Questa informazione è valida solo al momento presente. Ogni, diciamo 1 secondo, riceverò nuove informazioni aggiornate sullo stato della macchina.

Per mostrare questi valori su una pagina Web (Razor) è molto utile definire un modello. Ma a causa dell'alta frequenza di aggiornamento, non sono sicuro che la loro memorizzazione in un normale database sia l'idea migliore. Inoltre all'avvio devo cancellare tutti i dati perché devo ricevere quello attuale.

Quindi, penso che un database "in memoria" potrebbe essere una soluzione, ma il documentazione ufficiale sembra scoraggiare questa pratica:

The InMemory provider is useful when you want to test components using something that approximates connecting to the real database, without the overhead of actual database operations.

Sto interpretando correttamente la frase sopra? O semplicemente propongono UNO del possibile utilizzo di tale database?

    
posta Mark 25.11.2017 - 09:43
fonte

1 risposta

1

Non vorrei indulgere in InMemoryDatabase. Non hai bisogno di farlo. Stai già creando oggetti che mantengono lo stato delle macchine in memoria. Basta usare quelli nella tua vista. Tutto ciò che serve è popolare gli oggetti Model appropriati quando il nuovo stato delle macchine viene letto e utilizzato nella vista.

Questo lo manterrà semplice. Aggiungere un InMemoryDatabase sembra una complessità inutile e, a meno che non ci sia una ragione non menzionata nella domanda, non metterei nemmeno energie nel farlo.

    
risposta data 25.11.2017 - 17:57
fonte

Leggi altre domande sui tag