我应该在会话中存储视图模型或域模型吗?

时间:2016-12-20 15:25:28

标签: asp.net-mvc session model-view-controller asp.net-mvc-viewmodel domain-model

对会话状态存储有点困惑。我有一个MVC应用程序,有视图模型,它们更接近视图,然后有域模型具有丰富的行为。我们需要在我们的应用程序中存储一些会话状态,并且很难决定是否应该在我的会话中存储我的视图模型或我的域模型。

我们继承了遗留应用程序,我们不得不扩展一个ViewModelBase,它有很多内容。因此,犹豫是否要在会话中保存视图模型。另一方面,域模型中存在行为,并且存储它们感觉不对。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我不会说。首先,应尽可能避免使用会话。其次,在会话中存储对象可能非常有问题。除非您使用进程内会话存储(您不应该这样做),否则每个其他会话支持都要求对象进行序列化。对于简单的课程来说,这并不算太糟糕,但如果你正在处理层次结构和对象图,那么它将会是一个非常巨大的痛苦。

您还没有提供任何有关您实际尝试完成的信息,而不仅仅是"我们需要存储一些会话状态"。由谁或什么以及为什么需要?也许,如果你询问你实际上想要做什么,有人可以给你一个更好的解决方案,根本不涉及会议,或者至少只是最低限度。例如,您可以不是简单地存储id,而是使用它来从数据库中提取实体,而不是存储实体吗?

相关问题