DCN*_*YAM 3 asp.net concurrency entity-framework optimistic-concurrency entity-framework-4
我正在使用实体框架开发一个Web应用程序.我加载一个对象列表并将其绑定到转发器以显示所有项目的摘要.用户可以单击转发器中的每个项目的编辑图标或删除图标.
例:
第1项| 编辑| 删除
第2项| 编辑| 删除
...
使用rowversion列进行并发时,编辑工作正常,因为加载了记录,ID和rowversion列的值保存在隐藏的表单字段中.然后,这些"原始"值可用于稍后进行更新时使用.
但是,如果用户单击Delete作为记录,我从数据库加载对象,调用DeleteObject(),然后调用SaveChanges().这个问题是当我加载记录时,它获取最新的rowversion值,因此任何并发检查都是无用的.
如何确保在删除记录时进行并发检查?
实际上,如果要删除它,则不必从数据库加载对象.
相反,创建一个ObjectContext
,通过Attach(),然后DeleteObject()和SaveChanges()将ObjectToDelete附加到该上下文.因此,您将能够收到有关并发的异常.
归档时间: |
|
查看次数: |
1845 次 |
最近记录: |