【发布时间】:2010-08-13 19:18:53
【问题描述】:
让我们假设我有一个可重用的业务层,它进一步利用了使用 Entity Framework 4.0 实现的数据访问层。业务层返回/使用的实体是自我跟踪的,允许我们使用这些类型的实体附带的所有好处。
我希望能够跨回传存储我使用的实体(以避免每次都重新查询)。基本上让我们假设我有一个分页的 GridView,其中包含 10 个项目,以及类似 DetailsView 来编辑这些项目。每次在网格上选择新行时,详细信息视图都会使用所选行的信息进行更新。我的偏好是仅在页面的初始请求中查询实体并将其存储在会话中。随后,我有一个实体列表,我可以使用这些实体并最终对其进行修改并将所有更改发送回业务层。
我真的想使用会话而不是视图状态来减少页面负载(自我跟踪实体很重)但是我真的很喜欢视图状态,因为当用户离开页面时没有残留效果。
让我担心的一些事情是:
- 当用户从页面导航到另一个页面时,前一页面中的实体仍处于会话中。我总是可以在加载页面时做一些事情来做家务类型的工作。不确定这是否是好的做法。
- 我担心人们打开浏览器选项卡并在同一个页面中有两个视图,这似乎会造成问题。
- 这是一个好方法吗?似乎我正试图拥有世界上最好的东西,如果简单地在每个回帖中重新查询实体并支付 50-100 毫秒的数据库访问费用,肯定会容易得多。
非常感谢您的想法。
【问题讨论】:
标签: c# asp.net entity-framework entity-framework-4