【发布时间】:2009-07-19 06:48:08
【问题描述】:
我有一个应用程序,其架构类似于 client/server/db。客户端和服务器之间的通信是WCF(从asmx迁移过来的),数据库是SQL Server 2005。
该项目有一个要求,即您无法更新订单,该订单在您初次阅读后已被其他用户更改(更新)。我认为大多数应用程序中的一个常见要求。
一个订单的更新通常是这样的:
- 客户端读取订单 - 初始读取副本存储(会话)在服务器上
- 客户端更新订单 - 返回 更新订单 到服务器
- 服务器将再次从数据库中读取订单并与初始读取进行比较以检查订单是否已被其他用户更改 - 以防客户端将被通知重新读取订单
- 服务器将保存更改
这种处理数据更改的方法的效果是,在某个点 (3),服务器将在内存中拥有 3 个(不同的)订单副本!任何人都知道另一种策略吗?
我们正在运行带有 AspNetBackwardCompability 的 WCF,因为我们需要 Session 变量来“保存”初始读取副本 - 如果我们可以转储它,它会让我很开心
【问题讨论】:
标签: sql-server wcf