我们正在使用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