这是一款WPF应用。我每个演示者使用一个会话。用户从一个演示者导航到另一个演示者但通常不超过2个级别:
我该如何解决这种情况?
答案 0 :(得分:3)
这是因为Session包含通常称为第一级缓存的内容。它只包含Session在其生命周期中“看到”的所有实体,以避免从数据库中重新获取它们。
在进行任何查询之前,您可以使用session.Clear()
清除会话。如果您在每次导航操作后在演示者中执行此操作,则应该没问题。
另一种方法是定义一个管理Session的SessionManager类,以便两个演示者共享他们的Session。这可能是最好的解决方案,如果你能找到一些方法来定义一个Session的生命周期(我不建议在整个程序执行期间保持相同的Session)。