Vedi la domanda qui, che ho chiesto ieri: Dominio guidato Progetta in un'architettura di cipolla
Come affermato, comprendo che DDD è un approccio che ha come target solo il livello del dominio e Onion è un'architettura per l'intero sistema, ovvero core, infrastruttura ecc.
Onion suggerisce che tutte le interfacce dell'applicazione debbano essere contenute nel livello dominio come descritto qui: link e anche descritto nella mia domanda di ieri.
Ora vedi l'interfaccia dell'Unità di lavoro qui: link . Ecco un estratto del codice:
public ISession Session { get; private set; }
public UnitOfWork(ISessionFactory sessionFactory)
{
_sessionFactory = sessionFactory;
Session = _sessionFactory.OpenSession();
}
Quindi devo creare un'interfaccia UOW che abbia un riferimento a Session e un riferimento a SessionFactory. Pertanto devo installare NHibernate nel livello del dominio, che sembra essere un grande no no.
Che cosa posso fare in questo scenario? Si prega di non avvisarmi di non inserire l'interfaccia nel livello del dominio in quanto il livello del dominio contiene un servizio di dominio simile a questo: link (I servizi di dominio possono accedere al database tramite un repository in un servizio di dominio).