【发布时间】:2017-06-19 14:02:17
【问题描述】:
我们正在开发一个使用 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 服务器到应用程序服务器还是应用程序服务器到数据库/数据库服务器?我们需要更多信息才能提供建议。
-
Web 应用程序到数据库。
-
如果您跟踪每种情况下对数据库执行的操作,您将看到差异。
标签: c# asp.net asp.net-mvc session design-patterns