Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 存储每个用户实体的临时数据框架6_C#_Asp.net Mvc_Entity Framework - Fatal编程技术网

C# 存储每个用户实体的临时数据框架6

C# 存储每个用户实体的临时数据框架6,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我正在创建asp.net-mvc应用程序,其中用户正在上载多个文件。 数据将与数据库数据进行比较,随后进行处理和导出。还有分页 显示这些数据时,将导入排序和筛选 上传数据时,其中一些将存储在数据库中,一些将显示为未在数据库中找到,一些将被修改和存储。。。等 我的问题是,为了便于处理或查看,存储上传数据的最佳方式是什么 载入内存 为每个会话创建临时表?(甚至不知道是否可能) 可查询的不同存储(使用linq访问数据)(JSON??) 另一种选择 源文件是(csv或excel) 其中一个文件是示例 N

我正在创建asp.net-mvc应用程序,其中用户正在上载多个文件。 数据将与数据库数据进行比较,随后进行处理和导出。还有分页

显示这些数据时,将导入排序和筛选

上传数据时,其中一些将存储在数据库中,一些将显示为未在数据库中找到,一些将被修改和存储。。。等

我的问题是,为了便于处理或查看,存储上传数据的最佳方式是什么

  • 载入内存
  • 为每个会话创建临时表?(甚至不知道是否可能)
  • 可查询的不同存储(使用linq访问数据)(JSON??)
  • 另一种选择
  • 源文件是(csv或excel)

    其中一个文件是示例

    Name    Age     Street    City     Country    Code    VIP
    ---------------------------------------------------------
    Mike    42      AntwSt    Leuven   Belgium    T5Df    No
    Peter   32      Ut123     Utricht  Netherland T666    Yes
    
    课堂范例

    public class User
    {
         public string Name { get; set; }
         public Address Address { get; set; }   // street, city,country
         public Info Info { get; set; }         // Age, and Cres 
    }
    
    public class Info
    {
        public int Age { get; set; }
        public Cres Cres { get; set; }
    }
    
    public class Cres
    {
        public string Code { get; set; }
        public bool VIP { get; set; }  
    }
    

    如果数据量很小,您只需要暂时存在它们,那么可以将它们存储在内存中,从而减少使用其他解决方案时的所有开销

    <>你只需要确定,如果服务器或应用程序因任何原因被关闭,内存中的数据将消失。p>

    也可能是一个好主意,如果相同的用户第二次执行操作,而第一个数据的操作还没有完成会发生什么。如果这种情况发生在你身上(通常会发生),请确保使用良好的同步机制来防止竞争状况。

    有多种策略来处理这种情况(我实际上刚刚就这一主题写了一整篇论文),要实现这一点,你需要考虑许多不同的因素

    根据存在的数据量以及您对其所做的操作,将信息存储在会话存储中可能足够简单。现在,如何实际实现会话存储取决于您,还有一些问题需要您决定如何实现

    我个人推荐一个服务器端会话存储来处理所有事情,并且有多种不同的选项来实现这一点。例如:和

    然后,您需要一种与客户沟通他们的数据实际发生了什么的方式。如果多个客户端需要访问同一个数据集,而一个用户上载了一个更改,您将如何向每个用户通知此更改?同样,有很多选项,您可以使用来提醒所有正在侦听的客户端。你也可以利用微软的框架来尝试处理这个问题


    这个问题有很多不同的如果,但是,也许等等,不幸的是,我不相信有任何一个完美的解决方案来解决你的问题,而不知道你到底想实现什么

    您所做工作的典型生命周期/用例是什么?用户是否只是上传数据并等待处理?还是发生了别的事情?您可以查看服务器端会话状态存储。可能有点像REDIS。是的,用户正在上传数据并等待结果,我会检查REDIS,看看它是如何工作的。感谢您花时间回答我的问题!。我检查了Redis,似乎我必须在服务器端执行一些设置。因此,我做了一些研究以获得一些简单的解决方案,并发现了以下内容:System.Web.Caching和HTTPContext.Curent.Cache以及HttpRunTime.Cache和System.Runtime.Caching.MemoryCache。太多的选项,在我的情况下,您认为最好的选项是什么,我只想在会话期间为每个用户存储数据。不幸的是,有许多不同的选项。我会的。并体验服务器端缓存。