我正在使用 Entity Framework 开发一个网络应用程序。我加载一个对象列表并将其绑定(bind)到中继器以显示所有项目的摘要。用户可以点击转发器中每个项目的编辑图标或删除图标。
示例:
项目 1 |编辑|删除
项目 2 |编辑|删除
...
使用 rowversion 列进行并发时编辑工作正常,因为记录已加载,并且 ID 和 rowversion 列的值保留在隐藏表单字段中。这些“原始”值可供稍后在更新时使用。
但是,如果用户单击记录的“删除”,我会从数据库加载该对象,调用DeleteObject(),然后调用SaveChanges()。这样做的问题是,当我加载记录时,它会获取最新的 rowversion 值,因此任何并发检查都变得毫无用处。
如何确保删除记录时进行并发检查?
最佳答案
实际上,如果您想删除该对象,则不必从数据库加载该对象。
相反,创建一个ObjectContext
,通过 Attach()、DeleteObject() 和 SaveChanges() 将 ObjectToDelete 附加到该上下文。
因此,您将能够收到有关并发的异常。
关于asp.net - 在 Entity Framework 中删除对象时的并发性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6697459/