如何在一次调用DB中获取处理请求所需的所有数据。另外我想知道如果我的母版页还需要数据库中的一些数据,我将如何做到这一点?我知道它在Passing data to Master Page in ASP.NET MVC中澄清了。但我认为这会对数据库进行多次调用。如果不是这样的话,请告诉我。
更新
+1并感谢所有回答者/评论者的意见和建议。
答案 0 :(得分:3)
我认为您可能会混淆one session per request
和SELECT N + 1
方案。对数据库进行多次调用是完全正常的,但是您需要注意何时必须对列表中的每个项目执行一次数据库调用。这在使用延迟加载列表时最常遇到。解决方案是使用急切提取。
PS。我认为将数据传输到母版页的流行解决方案是在母版页中使用Html.RenderAction
。这样您就不必担心整个地方的主页问题(如导航)。
答案 1 :(得分:3)
我必须同意其他答案,你对此有什么理由?
NHibernate可以使用FUTURES
批处理SQL语句,你读过这个blog post吗?
但是说我不确定如何将所有观点结合到您的网站上。如果你确实提出了解决方案,我很乐意看到它。
这并不容易,并且无法显示一个小代码示例。
答案 2 :(得分:2)
将每个请求限制为仅限一个数据库,这是一个很高的命令。你这样做的原因是什么?这只是你自己设定的有趣挑战吗?如果出于优化原因,有更好的方法可以实现此目的:优化查询,缓存等。