ASP.NET核心-在整个应用程序中持久化模型的最佳方式是什么
本文关键字:模型 持久化 最佳 是什么 方式 应用程序 核心 NET ASP | 更新日期: 2023-09-27 17:57:54
首先,我有一个ASP.NET MVC Core应用程序,它就像一个向导,用户可以在其中登录并开始构建数据的"配置"。从本质上讲,当用户浏览每个页面时,他们正在配置/添加不同的数据到这个"配置"中。当他们浏览这些页面时,配置会随之保存。我遇到的问题是想出一个好的解决方案,保存配置的进度并在整个应用程序中保持它。以下是我的几个模型和我正在做的事情的一个非常简化的版本(没有涉及太多的领域细节):
public class Configuration
{
string ConfigName;
CustomerInfo CustomerInfo;
InputData Input;
}
public class CustomerInfo
{
string CustomerName;
string Company;
string PhoneNumber;
}
public class InputData
{
int SomeNumber;
int SomeOtherInput;
int AnotherNumber;
}
因此,在本例中,我实际上有一个CustomerInfo的创建页面。用户填写客户信息表单,保存它,然后被引导到InputData的创建页面,保存它并重定向到另一个视图,等等。在这种情况下,我需要跟踪所有这些都属于的"配置文件"。
我已经考虑过使用会话来存储它,但我意识到了它的一些缺点,特别是如果多个服务器正在为请求提供服务——会话丢失,等等。
对于这样的事情,什么是更好的解决方案/最佳实践?
编辑:我应该注意,我现在正在使用一个数据库来存储这些数据。因此,对于本例,我有一个"Configuration"表,它分别包含CustomerInfo表和InputData表的外键。
我们已经将会话用于特定于用户的数据。由于我们的应用程序是单服务器的(或者在具有粘性会话的多服务器场景中),因此会话可以很好地完成任务。为此,你需要评估你的情况。你肯定会使用多服务器、网络农场或单服务器等来进行适当的计划吗。
另一种方法是使用身份验证cookie存储最少的用户信息(您可以存储其他数据,如用户ID),然后从cookie中读取,并在回发时或在DB请求时重新加载。我建议只存储特定于用户的内容(如ID),而不要尝试将所有配置文件数据存储在cookie中。