Sono confuso su come utilizzare al meglio questo schema. Ho un progetto che usa Devart's Entity Framework per Oracle. Il contesto è fornito da loro. Quindi ho un'interfaccia IRepository
e una singola implementazione concreta OracleRepository
che ha un riferimento privato al contesto.
Ora alla mia domanda. In questo caso, anche le definizioni della classe del modello EntityObjects devono essere astratte? Penso che la classe client debba essere in grado di risolvere i tipi restituiti per accedere alle proprietà di EntityObjects
, ma entrambi i contesti avrebbero bisogno di avere accesso alle stesse definizioni di classe. Devo creare un'interfaccia per ogni tipo di oggetto dal modello?
La motivazione è di consentire diverse ORM e opzioni di archiviazione dei dati in futuro.
L'esempio fornito qui
Course course = unitOfWork.CourseRepository.GetByID(id);
Il client deve sapere che cos'è Course
in sostanza. Dovrebbe essere ICourse
invece?