Предупреждение CA1001 реализовать IDisposable незначительным - PullRequest
0 голосов
/ 02 декабря 2018

Я использую шаблон Repository и у меня есть общий класс репозитория

public class GeneralRepository<T> where T:class
{
    private Context con = new Context();
    protected DbSet<T> Dbset { get; set; }

    public GeneralRepository()
    {
        Dbset = con.Set<T>();
    }
    public IEnumerable<T> GetAll()
    {
        return Dbset;
    }
    public T SelectByID(int? id)
    {
        var rec = Dbset.Find(id);
        return rec;
    }
    public void AddRecord(T entity)
    {
        Dbset.Add(entity);
    }
    public void EditRecord(T entity)
    {
        con.Entry(entity).State = EntityState.Modified;
    }

    public void Detach(T entity)
    {
       con.Entry(entity).State = EntityState.Detached;
    }
    public void Save()
    {
        con.SaveChanges();
    }
}

Существует несколько собственных репозиториев, которые наследуют мой общий репозиторий, например:

public class EmailAssignRepository:GeneralRepository<EmailAssign>
public class DepartmentRepository:GeneralRepository<Department>

Все работаетхорошо в моем коде, но он дал мне предупреждение, когда я запускаю анализ кода.Что это значит?это незначительно?Если нет, как преодолеть это предупреждение?

1 Ответ

0 голосов
/ 02 декабря 2018

На основе MSDN :

Класс реализует интерфейс IDisposable для удаления принадлежащих ему неуправляемых ресурсов.Поле экземпляра типа IDisposable указывает, что поле владеет неуправляемым ресурсом.Класс, который объявляет поле IDisposable, косвенно владеет неуправляемым ресурсом и должен реализовывать интерфейс IDisposable.Если класс непосредственно не владеет какими-либо неуправляемыми ресурсами, он не должен реализовывать финализатор.

Причина:

Класс объявляет и реализует поле экземпляра, которое является System.IDisposable введите, а класс не реализует IDisposable.

Как исправить нарушения

Чтобы устранить нарушение этого правила, реализуйте IDisposable и изSystem.IDisposable.Dispose вызов метода Dispose поля.

И вот что: Как реализовать наследуемое наследование в хранилище?


Когда следует подавлять предупреждения (а ваш вопрос незначителен? Нет)

Не подавлять предупреждение из этого правила.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...