【发布时间】:2010-12-18 00:14:59
【问题描述】:
考虑这个典型的断开连接的场景:
- 使用 LINQ To SQL 从 SQL Server 加载客户对象
- 用户编辑实体,表示层发回修改的实体。
- 使用 L2S 的数据层必须将更改发送到 SQL Server
考虑这个旨在获取客户实体的 LINQ To SQL 查询。
Cust custOrig = db.Custs.SingleOrDefault(o => o.ID == c.ID); //get the original
db.Custs.Attach(c, custOrig); //we don't have a TimeStamp=True property
db.SubmitChanges();
DuplicateKeyException: Cannot add an entity with a key that is already in use.
问题
- 如何避免此异常?
- 更新没有/不想要/不需要时间戳属性的实体的最佳策略是什么?
次优解决方法
- 手动将更新客户中的每个属性设置为原始客户。
- 启动另一个 DataContext
【问题讨论】:
标签: c# linq-to-sql concurrency datacontext