【发布时间】:2017-01-12 08:04:46
【问题描述】:
我有一个业务逻辑,其中包含大量数据库提取操作和一些复杂的业务逻辑。 获取的数据在用户会话中很少更改。
- 许多获取操作(获取的数据在用户会话中很少更改)。
- 对于表单上的每个操作(按钮单击/文本框中的值更改等...),我们需要运行业务逻辑以检查其是否有效更改。
目前我们正在使用 Asp.net Forms Application,这些业务逻辑在 InSessionScope() 中。 目前我们正在努力迁移到 Restful API(WebAPI)。
- 我们可以在 RESTFul 中使用 session(InSessionScope()) 吗?
- 如果不在会话中,如何避免更多的数据库调用并在后续调用中使用相同的对象并提高性能?
【问题讨论】:
-
REST是无状态的,通过添加Session您使其有状态并破坏了拥有它的任何目的。 -
您可以使用
Session。看看这个forums.asp.net/t/1780385.aspx -
不要使用会话(内存中),因为如果您有多个 Web 服务器,则会出现问题。熟悉授权令牌、请求范围并了解如何将业务逻辑融入其中。 dotnetcurry.com/aspnet/1223/…
-
@AfnanAhmad 正确,有没有什么机制可以避免后续调用中的数据库调用并提高性能。
-
我认为您正在寻找缓存机制,我认为有很多资源。
标签: c# asp.net design-patterns asp.net-web-api asp.net-web-api2