Name your class Repository RepositoryBase and create virtual interface methods. implement them in general form inside your RepositoryBase class, but since u marked methods as virtual u will be able to redefine functionality in your derived classes, your code will look something like this.
public interface IRepository<T> where T : EntityObject
{
RepositoryInstructionResult Add(T item);
RepositoryInstructionResult Update(T item);
RepositoryInstructionResult Delete(T item);
}
public class Repository<T> : IRepository<T> where T : EntityObject
{
virtual RepositoryInstructionResult Add(T item)
{
virtual RepositoryInstructionResult Update(T item);
{
virtual RepositoryInstructionResult Delete(T item);
{
}
U - , Bar, Name it BarRepository Repositorybase . u ,
public class BarRepository : Repositorybase<Bar>
{
public override RepositoryInstructionResult Update(Bar item);
{
}
}