Sto implementando un sito Web utilizzando MVC3, Entity Framework 4.1 e Pattern Repositoty, Principio dell'unità di lavoro. Ma sto affrontando un grosso problema durante l'implementazione di questo.
Ho sviluppato una classe ObjectContext statica. Questa classe viene utilizzata in tutti i repository in modo da seguire il modello dell'unità di lavoro. Ho per esempio Cliente, repository IProduct. Io uso specificamente un solo repository in un controller e anche questo viene iniettato usando NInject.
CustomerController(ICustomer customer)
{
}
ProductController(IProduct product)
{
}
Poiché la classe di contesto dell'oggetto è statica e IProduct, ICustomer ha un costruttore con parametri che accetta la classe objectContext, questi due condivideranno la stessa istanza di ObjectContext.
Quando l'esecuzione è a thread singolo, tutto va bene, ma nel multithreading ottengo un'eccezione non gestita, perché un repository chiude la connessione che veniva utilizzata da altri. Penso che se creo la classe ObjectContext non statica, questo risolverà il problema (non ancora testato), ma l'unità di lavoro non verrà osservata.
Puoi suggerire una soluzione per questo?