在我的控制,我調用庫類調用存儲過程,SQL ...等MVC語法調用庫類
即控制器看起來:
Repository repo = new Repository();
public ActionResult Index()
{
var getservice = repo.GetList(...);
foreach (var servicegroup in ServicesSelected)
{
var Result = repo.CheckStatus(...);
....
}
}
我的倉庫類如下所示:每當我調用sp或do數據庫操作時,我都會圍繞使用(用於實現IDispose)和調用上下文。
示例在這個動作中調用GetList(),然後有一個它調用的循環, 5次,每次它產生一個新的上下文,我不認爲這是每次產生新的上下文的正確方法。
什麼是用「一個方面」,還可以使用「使用」中的每個庫函數來實現IDispose或者我不應該使用「使用」,並創建了IDisposable類
樣品的例子是很多的正確方法讚賞正確的方法。
更新 - 想用DI框架
在我的HomeController做我需要添加引用庫類?
public class HomeController : Controller
{
SubscriptionRepository _repo;
public HomeController (Repository repo)
{
_repo = repo;
}
裏面的索引操作調用庫類
_repo.GetList(...);
裏面庫類,做我做同樣的我在HomeController的那樣?
public class Repository
{
private MyAppConnection _context;
public Repository(MyAppConnection context)
{
_context = context;
}
然後從我的的checkStatus使用撈出剛
public int CheckStatus(...)
{
return _context.sp_web_Status(...);
}
}
,並在NinjectWebCommon:RegisterServices
才能註冊兩者兼而有之?
kernel.Bind<Repository>().ToSelf().InRequestScope();
kernel.Bind<MyAppConnection>().ToSelf().InRequestScope();
這是使用DI框架和配置MyAppConnection的正確方法嗎? 如果我在Repository類中正確地做了更多的關注?
不回答你的問題,但你不應該在控制器中創建存儲庫實例。最好將它們注入到構造函數中,並使用像autofac或structuremap這樣的DI容器來配置它們。這可能有助於:http://www.codeproject.com/Articles/562871/MVC-Repository-Pattern-with-Entity-Framework-and-s DI容器也可以爲您管理這些對象的生命週期。 – Magrangs
任何人都可以確認?如果語法正確? – Ben