如何保存不使用的EntityFramework保存到数据库跨在ASP.NET中的实体请求状态?(Ho

2019-07-04 20:29发布

我的工作由几个页面中,用户数据填充的CRUD ASP.NET WebForms的Web应用程序。 我的客户不希望将实体存储在页面之间的数据库中,直到用户点击完成最后一页上(因各种原因)。 哪些选项是否有传播的页面,哪个是最不坏的之间的数据填充? 从我读我见过的ViewState和Server.Transfer的都可以使用。 任何其他选项,最好少用魔法串和多种类型的安全数据绑定到实体对象?

Answer 1:

使用ViewState将会显著增加您的发送沿着电线的数据量,因为所有的Viewstate数据序列化为形式隐藏输入,从而为你添加对象的HTTP请求-响应将会显著增长。

有没有灵丹妙药在此真的。 如果你的数据不是太复杂,我的值存储在查询字符串。 如果你的对象越来越复杂,大,要保持类型安全我会使用Session ,但要记住自己后清理!

另一选择是使用MVC模式和存储值它采用隐藏式输入的自我形式。 这意味着你不必担心清理会话如果用户虫子尽管有一半的方式,但它也让你的查询字符串干净。

认为那所有的选项, 查询字符串视图状态(不这样做), 会话隐变量

好了,所以你必须seraialise你的数据,所以你不能坚持的上下文。 这不是serialiseable所以上面是你的选择:

他们每个人都有正面和负面,

  • 视图状态(inefficent,而且易于使用)
  • 查询字符串(efficent但不切实际的大型数据集和编辑)
  • 会话(增加了服务器的负载,需要清理,但可以让你坚持在服务器上的数据只)
  • 隐变量(从用户但比视图状态更有效隐藏需要大量的隐藏的输入为每个属性)

任你选!



Answer 2:

你可以存储在客户端应用程序中使用的所有对象的Session当用户点击完成您发送这些对象的服务/方法,你可以将它们转换成实体,然后将它们提交到数据库,然后。



Answer 3:

使用memcached。
有吨的在互联网上的例子。
试试这个 :
实现使用Memcached的分布式缓存



文章来源: How to save state across requests for an entity in ASP.NET without saving to database using EntityFramework?