Я пытаюсь реализовать шаблон репозитория в моем проекте. Я не уверен, правильно ли я использую утилиту. Я взял шаблон из курса MVA на основе сущности.Смутно об использовании утилиты в моем репозитории. EF6 MVC
Мой репозиторий
public static bool IsAwesome { get { return true; } }
public class Repository<T> : IDisposable where T : class
{
private ApplicationDbContext db = null;
protected DbSet<T> DbSet { get; set; }
public Repository()
{
db = new ApplicationDbContext();
DbSet = db.Set<T>();
}
public List<T> GetAll()
{
return DbSet.ToList();
}
public T Get(int id)
{
return DbSet.Find(id);
}
public T GetWithString(string id)
{
return DbSet.Find(id);
}
public void Add(T entity)
{
DbSet.Add(entity);
}
public void Update(T entity)
{
DbSet.Attach(entity);
db.Entry(entity);
}
public void SaveChanges()
{
db.SaveChanges();
}
private bool disposed = false;
protected virtual void Dispose(bool disposing)
{
if (!this.disposed)
{
if (disposing)
{
db.Dispose();
}
}
this.disposed = true;
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
}
Пример imageRepository, который наследует от хранилища
public class ImageRepository : Repository<Image>
{
public Image GetLatest(int vehicleId)
{
return DbSet.FirstOrDefault(p => p.VehicleId == vehicleId);
}
public List<Image> GetImagesByVehicleId(int vehicleId)
{
return DbSet.Where(p => p.VehicleId == vehicleId).ToList();
}
}
Используя мой репозиторий на верхней части контроллера и размещения в нижней части моего контроллера
ImageRepository imageRepository = new ImageRepository();
UserRepository userRepository = new UserRepository();
protected override void Dispose(bool disposing)
{
imageRepository.Dispose();
userRepository.Dispose();
base.Dispose(disposing);
}
Будет ли мой код обрабатывать все неуправляемые соединения и правильно их закрыть?
Заранее спасибо. Я все еще немного новичок в MVC и EF. Прошу прощения, если мой вопрос немного новичок. Мой первый пост здесь. Поэтому я надеюсь, что я не нарушал никаких правил :)
Не знаете, что вы имеете в виду с unitOfWork? - В репозитории, который наследуется от общего хранилища? - Или что-то еще?) –