我們正在使用ASP.NET MVC4開展一個項目。在團隊的其中一次會議中,提出了使用會話每個請求 模式的想法。它如何工作Session Per Request模式?
我做了一個小小的搜索,發現了一些問題,在這裏說 - 總的來說 - 這種模式(如果可能被稱爲)它表示框架ORM。
一個小例子
//GET Controller/Test
public ActionResult Test()
{
//open database connection
var model = new TestViewModel
{
Clients = _clientService.GetClients(),
Products = _productService.GetProducts()
};
//close database connection
return View(model);
}
沒有每個請求會話:
//GET Controller/Test
public ActionResult Test()
{
var model = new TestViewModel
{
Clients = _clientService.GetClients(), // Open and close database connection
Products = _productService.GetProducts() // Open and close database connection.
};
return View(model);
}
惑
- 要進行背景化,每個請求的會話如何工作?
- 這是一個很好的解決方案嗎?
- 實施它的最佳方式是什麼?在網絡上打開連接?
- 是否在具有複雜查詢/操作的項目中推薦?
- 當涉及到交易時,是否有可能發生併發問題?
每個請求的會話在哪個級別完全相同? Web服務器,Web服務器到應用服務器還是應用服務器到數據庫/數據庫服務器,它是客戶端嗎? 我們需要更多信息才能提供建議。 – DDan
Web應用程序到數據庫。 –
如果您在每種情況下都對數據庫執行的操作進行跟蹤,您將看到不同之處。 – gpersell