Al momento ho quattro progetti nella soluzione del mio sito web:
Project.Data
Questo contiene l'oggetto DbContext di EntityFramework e anche i repository che interagiscono con esso. Fa riferimento a Project.Models .
Project.Models
Questo contiene gli oggetti business e non fa riferimento a nessun altro progetto
Project.Web
Questo contiene tutti i ViewModels, Views, Controllers e il contenuto statico del sito web. Fa riferimento a Project.Data (per i repository), Project.Models e Project.Service
E ora arrivo al progetto del problema ...
Project.Service
Voglio che questo sia il progetto che Project.Web usa per rendere magri i suoi controllori, poiché capisco che sia desiderabile.
Ciascuna delle classi in questo progetto avrà probabilmente un repository iniettato in modo che possano accedere ai dati di cui hanno bisogno. Una delle loro responsabilità sarà quella di creare un ViewModel per i controller in Project.Web da utilizzare. Ciò significa che farà riferimento a Project.Data per un riferimento a quei repository, Project.Models per i modelli e Project.Web per l'accesso a i ViewModels.
Così come ho la sensazione che sto facendo qualcosa di veramente sbagliato da tutto questo, vado ad aggiungere il mio ultimo riferimento a Project.Web da Project.Service e si sbaglia dicendo che ora ho una dipendenza circolare ...
Che cosa esattamente sto facendo di sbagliato qui? Ci sono schemi che posso usare per ripulire alcune dipendenze da altri progetti o sto cercando di fare qualcosa che non è utile comunque?