Sto implementando il modello di repository usando DI e EF6.
Ho creato l'oggetto database (che eredita da DbContext
) con Procedura guidata di Visual Studio ADO.NET Entity Data Model
Ho un generico IRepository<T>
nell'assembly del mio dominio e la sua implementazione in diversi assembly basati sull'origine dati.
I problemi arrivano con gli oggetti di mappatura dall'EF agli oggetti del dominio: quasi tutto il mio codice scrive cose come
private Sql.Database.Cat Map(Domain.Data.Cat cat)
{
return new Sql.Database.Cat
{
Species = cat.Species,
Legs = cat.Legs,
...
}
}
e il contrario ovviamente. Il mapping crea una grande quantità di problemi, ad esempio l'aggiornamento, ma è necessario per non aggiungere il Sql.Database
dll come dipendenza nell'assembly dell'interfaccia utente.
C'è un modo per non dover mappare gli oggetti e non avere l'assemblaggio EF come dipendenza?