當使用實體框架時,將資源庫注入控制器是不好的做法嗎?應該通過構造函數注入一個存儲庫還是使用?
例如,如果我有一個服務:
public class DogService
{
IMyDbContext _myDbContext;
public DogService(IMyDbContext myDbContext)
{
_myDbContext = myDbContext;
}
public void CreateDog(string name)
{
//create a dog using the myDbContext
}
}
上面會不好的做法,因爲我們沒有明確的處置庫的,這將是更好的事情可做:
public void CreateDog(string name, IMyDbContext myDbContext)
{
using(myDbContext)
{
//create a dog using the myDbContext
}
}
mydbcontext的stucture:
public class MyDbContext : DbContext, IMyDbContext {}
如何處置myDbContext?
你通常不會「注入」上下文。上下文被創建,使用和銷燬。更常見的是,注入_repository_或其他東西,然後使用上下文。 –
非常感謝你更新了這個問題 –
要回答另一個問題,無論_creates_這個一次性對象是否通常負責它的_disposing_。當你將它注入另一個類時會讓事情變得複雜。 –