Подтвердить что ты не робот

Почему общий репозиторий считается анти-шаблоном?

мне кажется, что многие специализированные классы репозитория имеют сходные характеристики, и было бы целесообразно, чтобы эти классы реализовали интерфейс, который обрисовывает в общих чертах эти характеристики, создавая общий репозиторий

чтобы проиллюстрировать мою точку зрения, скажем, у нас есть этот код

public class IEntity
{
    public int Id; 
}

public interface IRepository<T> where T: IEntity
{

    IEnumerable<T> List { get; }
    void Add(T entity);
    void Delete(T entity);
    void Update(T entity);
    T FindById(int Id);
}

[Table("Author")]
public partial class Author : IEntity
{
    public int Id { get; set; }

    [Required]
    public string authorname { get; set; }
}

а затем мы переходим к реализации этих интерфейсов для создания наших конкретных хранилищ

public class AuthorRepository : IRepository<Author>
{

    Model1 _authorContext;

    public AuthorRepository()
    {
        _authorContext = new Model1();

    }
    public IEnumerable<Author> List
    {
        get
        {
            return _authorContext.Authors;
        }

    }

    public void Add(Author entity)
    {
        _authorContext.Authors.Add(entity);
        _authorContext.SaveChanges();
    }

    public void Delete(Author entity)
    {
        _authorContext.Authors.Remove(entity);
        _authorContext.SaveChanges();
    }

    public void Update(Author entity)
    {
        _authorContext.Entry(entity).State = System.Data.Entity.EntityState.Modified;
        _authorContext.SaveChanges();

    }

    public Author FindById(int Id)
    {
        var result = (from r in _authorContext.Authors where r.Id == Id select r).FirstOrDefault();
        return result; 
    }
}

перед тем, как реализовать это, я провел небольшое исследование о том, была ли это хорошая идея или нет, и всю информацию, которую я смог найти, были утверждения, называющие это анти-паттерном, но без объяснения причин.

Почему универсальный репозиторий считается антишаблоном?

4b9b3361