-2

Ich versuche zu verstehen, ob ich eine generische Repository-Schnittstelle erweitern kann oder nicht.Wie soll ich ein generisches Repository erweitern?

Entschuldigung, ich bin neu und habe Google-Suche das und kann keine solche Implementierung finden, die mich dazu bringt zu denken, ich versuche, die generische Repository-Logik zu trotzen.

Ich verwende EF Core ORM.

Ich habe IRepository<T>:

IEnumerable<T> GetAll(); 
T Get(long id); 
void Insert(T entity);  
void Update(T entity); 
void Delete(T entity); 

ich implementieren dann eine generische Repository:

public class Repository<T> : IRepository<T> where T : class 

Allerdings benötige ich für nur eine Entität Namen eine spezielle Methode zur Umsetzung Conference wie:

IList<T> GetIncludedItems(Expression<Func<T, bool>> predicate, params string[] navigationProperties); 

Wie kann ich mein generisches Repository zu handhaben erweitern Diese eine Ausnahmemethode, ohne dass die anderen Entitäten sie implementieren. Darüber hinaus implementiert meine service class diese Repositories über Konstruktor Injektion.

public ConferenceService(IRepository<Conference> _conferenceRepository) 

Ich muss auch Abhängigkeit Bindung über meine ConfigurServices pflegen.

services.AddScoped<IConferenceService, ConferenceService>(); 

Irgendwelche Vorschläge, wo ich falsch liege oder wie kann ich das erreichen?

+0

Verwenden Sie Entity Framework oder ist dies ein Wrapper um andere ORM? – Igor

+0

Sie sollten ein spezielles Repository 'ConferenceRepository: IConferenceRepository ' erstellen, das ebenfalls von 'IRepository' abgeleitet ist. – FCin

+0

Ich würde ** gegen ** versuchen, EF durch ein Repository-Muster zu verstecken. EF auf sich selbst folgt dem Repository-Muster, so dass Sie das Repository eines Repository tun würden => Desaster –

Antwort

Verwandte Themen