Должен ли я реализовать IDisposable для всех классов или достаточно базового класса?

Мне сказали, что мне нужно удалить экземпляры моих классов репозитория Entity Framework , и я создал базовый класс для обеспечения соблюдения этой реализации.

Мне нужно уточнить у экспертов: допустимо ли реализовать IDisposable через базовый класс?

Обратите внимание, что класс репозитория не имеет переменных-членов класса.

/// Sample repository.  Note that I return List as IEnumerable, 
/// and I use IDisposable 
///
public class CompanyRepository : DisposableBase, ICompanyRepository
{
    public IEnumerable GetOneCompany(int? CompanyID)
    {
        var t = from c in _entities.CompanyDetail
                where c.CompanyID == CompanyID.Value
                select c;
        return t.ToList();
    }
}

/// 
/// Disposable implementation based on advice from this link:
/// from Http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application
/// 
public class DisposableBase : IDisposable
{
    protected TLSAdminEntities1 _entities;

    public DisposableBase()
    {
        _entities = new TLSAdminEntities1();
        disposed = false;
    }

    private bool disposed ;
    protected virtual void Dispose(bool disposing)
    {
        if (!this.disposed)
        {
            if (disposing)
            {
                _entities.Dispose();
            }
        }
        this.disposed = true;
    }
    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }
}

7
задан AakashM 15 November 2011 в 16:39
поделиться