Domanda

Come dovrei usare l'unità del modello di lavoro nel seguente scenario:

Sto scrivendo un'app winforms. Ho una schermata in cui l'utente può modificare un singolo ordine. In questa schermata, l'utente può aprire un altro modulo per selezionare la società di consegna. L'utente può anche aggiungere / modificare società di consegna esistenti in questo modulo figlio prima di effettuare la selezione.

Come posso implementare questo scenario usando il modello Unità di lavoro? Attualmente ho un'unità di lavoro per la schermata di immissione dell'ordine. Il mio primo pensiero è stato quello di includere la forma del bambino anche in questa unità di lavoro. Il problema è che le modifiche apportate alla società di consegna devono essere persistenti nel modulo figlio. Ma quando persisterò cambiamenti nelle società di consegna, questo persisterà anche i cambiamenti nell'ordine.

Devo creare una seconda unità di lavoro per eventuali modifiche alle società di consegna? In tal caso, come posso rendere visibili le modifiche in quell'unità di lavoro nella prima unità di lavoro?

È stato utile?

Soluzione

Dalla tua descrizione sembra che tu abbia davvero due unità di lavoro qui. Il primo è & Quot; Inserimento ordine & Quot; e il secondo è " Modifica società di consegna " ;. Ogni unità di lavoro ha un tipo di sessione o transazione sottostante. Per comunicare dal modulo figlio all'inserimento dell'ordine, dovrai staccare l'oggetto della società dalla sessione del modulo figlio e ricollegarlo al genitore. Il modo in cui implementarlo effettivamente dipende dal livello di accesso ai dati che stai utilizzando, ma un modo semplice è quello di passare l'ID dell'azienda.

Altri suggerimenti

  

Attualmente ho un'unità di lavoro per la schermata di inserimento dell'ordine. Il problema è che le modifiche apportate alla società di consegna devono essere persistenti nel modulo figlio.

     

Come posso implementare questo scenario usando il modello Unità di lavoro?

  1. OrderEditForm e DeliveryCompanyCollectionEditForm devono condividere lo stesso DeliveryCompanyRepository che condivide la stessa unità di lavoro.

  2. <=> dovrebbe restituire aziende dal database + società che sono state aggiunte durante l'unità di lavoro.

In questo modo un nuovo oggetto società di consegna dovrebbe essere disponibile in <=> senza modifiche permanenti.

  

Devo creare una seconda unità di lavoro per eventuali modifiche alle società di consegna? In tal caso, come posso rendere visibili le modifiche in quell'unità di lavoro nella prima unità di lavoro?

Due o più unità di lavoro utilizzate in parallelo richiedono un'attenzione particolare nella sincronizzazione dei dati. Quando un'unità di lavoro si impegna, alcuni mediatori di solito aggiornano tutte le altre unità di lavoro, come già indicato nell'altra risposta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top