0
美好的一天給大家!linq-to-sql asp mvc - 在哪裏訪問數據上下文?
目前正在使用Linq to Sql來處理數據庫的asp-mvc 2項目。
我在asp mvc中看到很多關於Linq到sql的文檔,我的問題是,恰恰是我訪問我的數據上下文的地方?什麼地方有更好的表現?
例如,我有MyDBDataContext
類
我可以在我的控制器
public class ImaginaryController : Controller
{
MyDBDataContext context = new MyDBDataContext();
public ActionResult Index()
{
var list = // some code to read context
return View(list);
}
}
.......
或者,在操作方法定義
public class ImaginaryController : Controller
{
public ActionResult Index()
{
MyDBDataContext context = new MyDBDataContext();
var list = /* some code to read context */;
return View(list);
}
public ActionResult Create()
{
//but create need reference
MyDBDataContext context = new MyDBDataContext();
var list = /* some code to read context */;
return View(list);
}
}
另一種選擇是創建一個類來訪問數據
public class AccesToBD{
//maybe
private MyDBDataContext current;
public static MyDBDataContext GetContext(){
return current;
}
}
或更復雜的東西,如Implementing the Singleton Pattern in C#
什麼是最好的解決方案?爲什麼?感謝您的回答。
不知道是否應該遵循相同的結構? – user2547522
它當然可以。有些代碼可能略有不同,但該模式可以100%用於MVC 2. – Darren
依賴注入是一種設計模式 - 意味着它實際上並沒有直接與asp.net有任何關係。這是一種讓事情變得更輕鬆的方法。有可用的庫,例如Unity和Ninject,允許您在特定項目中使用此模式。 – Darren