Hi,
I need to write some common methods for all repositories , how do i achieve this? I dont want to write custom repository for all entities . I need to use either ABP default repository or generic repository.
In RepositoryBase class I have seen an area for writing common methods
public abstract class SampleRepositoryBase<TEntity, TPrimaryKey> : EfRepositoryBase<SampleDbContext, TEntity, TPrimaryKey>
where TEntity : class, IEntity<TPrimaryKey>
{
protected SampleRepositoryBase(IDbContextProvider<SampleDbContext> dbContextProvider)
: base(dbContextProvider)
{
}
//add common methods for all repositories
}
I did wrote code here but i can't invoke it using Repository
1 Answer(s)
-
0
<cite>Shyamjith: </cite> I did wrote code here but i can't invoke it using Repository
What do you mean with this sentence? Do you mean you don't see methods from a client class of your repository? If so, it is a matter of interfaces.
Your concrete repository is probably declare in this way:
public class MySpecificRepo : SampleRepositoryBase<MyEntity, int>, IMySpecificRepo { ... }
This means, clients see your class by the interface IMySpecificRepo.
So you have to define a ISampleRepositoryBase interface declaring the new methods added to SampleRepositoryBase and declare your Concrete Interface by extending it:
public interface ISampleRepositoryBase<TEntity, TPrimaryKey> : IRepository<TEntity, TPrimaryKey> { // here your additional common methods declarations ... } public interface IMySpecificRepo : ISampleRepositoryBase<MyEntity, int> { // here your specific repository methods ... } public class MySpecificRepo : SampleRepositoryBase<MyEntity, int>, IMySpecificRepo { // here the implementations ... }
In this way all works
Gp