环境:ASP.NET MVC3 C#
假设我有一些存储库(半伪):
public interface IRepository
{
create();read();update();delete();opendb();closedb();
}
public class CarRepository : IRepository
{
private DbContext namedDbContext;
public void opendb()
{
namedDbContext = new DbContext();
}
public void closedb()
{
namedDbContext.dispose();
}
}
然后在控制器中注入存储库并按如下方式使用以手动控制数据库连接生存期:
public class SomeController : Controller
{
private IRepository CarRepository;
public void SomeController(IRepository _carRepository)
{
CarRepository = _carRepository;
}
public ActionResult SomeAction(int CarId)
{
CarRepository.opendb();
var car = CarRepository.read(CarId);
CarRepository.closedb();
}
}
这是否被认为是不好的做法,因为它正在从存储库控制连接并将其放置在控制器中?我担心使用依赖注入会导致内存泄漏,并希望确保不会打开重复的连接,也不会长时间运行和未使用。