Consigli su UnitOfWork con NHibernate e / o Web Service
-
11-09-2019 - |
Domanda
Sto cercando qualche consiglio per il seguente.
Ho bisogno di creare un DAL che è intercambiabile tra un database e un webservice. Sto sviluppando in C # e WPF.
ha nessuno di vedere qualche buona implementazioni di un IUnitOfWork e permette diverse DAL essere interruttore in o out utilizzando una sorta di DI?
Modifica
Quindi, dopo aver fatto qualche lettura. Ho deciso di utilizzare un Pattern Repository. Il modello Rep prende in un IUnitOfWork. Sopra si legge il contrario. qui è anche un esempio di ciò che intendo con l'interruttore in o fuori.
NHibernateProductRepository : IRepository<Product>
{
private IUnitOfWork _unitOfWork = null;
public NHibernateProductRepository(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
}
WebServiceProductRepository : IRepository<Product>
{
private IUnitOfWork _unitOfWork = null;
public WebServiceProductRepository (IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
}
}
....
public static class Bootstrapper
{
public static void Load()
{
// Some sort of IOC.. Which will also be used for DI.
}
}
Quindi penso che ho bisogno di aiuto con la roba IUnitOfWork. I repository Web Service stanno per essere difficile. Allora, come faccio a creare una sorta di transazione, e come faccio a coda ecc ecc
Un'ultima cosa, in un ambiente WPF più thread potrebbero essere salvare le cose al database, quindi per ogni thread che dovrebbe creare il proprio UnitOfWork? Ho paura di un thread potrebbe impegnarsi a metà strada attraverso un altro ecc.
Soluzione
Si dovrebbe verificare SharpArchitecture se si va con NHibernate. Il progetto contrib ha coperto lo scenario.