代码之家  ›  专栏  ›  技术社区  ›  e36M3

在中存储实体框架自跟踪实体asp.net 会议,好主意?

  •  0
  • e36M3  · 技术社区  · 15 年前

    假设我有一个可重用的业务层,它进一步利用了使用EntityFramework4.0实现的数据访问层。业务层返回/消耗的实体是自跟踪的,允许我们获得这些类型实体的所有好处。

    我想能够存储实体,我的工作,跨后回(为了避免再次查询每一次)。基本上让我们假设我有一个页面GridView,其中包含10个项目,还有一个类似DetailsView的东西来编辑这些项目。每次在网格上选择新行时,“详细信息”视图都会更新所选行的信息。我的首选是只查询页面初始请求上的实体,并将其存储在会话中。然后,我有了一个可以使用的实体列表,最终修改并将所有更改发送回业务层。

    我真的想使用session而不是view state来减少页面负载(自跟踪实体很重),但是我真的很喜欢view state,因为当用户离开页面时,没有剩余的影响。

    1. 当用户从该页导航到另一页时,上一页中的实体仍处于会话中。我总是可以在一页纸上做一些家务活。不知道这是不是好的做法。
    2. 这是个好办法吗?似乎我正在努力做到最好,它肯定会容易得多,只要重新查询每一个实体的邮件回来,并支付50-100毫秒的数据库之旅命中。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Paddy    15 年前

    这样做也有好处,因为您可以进行更简单的并发检查,而且当有人打开两个选项卡时,您也不会遇到上面提到的会话“交叉”问题。

        2
  •  1
  •   zeeshanhirani    15 年前

    如果您要访问数据库,那么您就几乎失去了自跟踪实体的好处,自跟踪实体能够在objectcontext不存在时跟踪更改。因此asp.net无状态场景是STE的一个好选择。我认为你只需要在viewstate中保留一个实体,那就是你正在编辑的实体,它不应该那么重。你可以选择会话,但我从来没有像你提到的那样喜欢会话。当有东西挂着的时候,它会在路上引起很多虫子。