我有多个进程访问同一个数据库表。该表包含“TakenBy”列,该列应该包含接受者进程的 ID。
实体框架是我的数据访问层。
我的问题是如何使用我的 DataContext 对象,以便我可以从上表中检索行,并同时更新“TakenBy”列。这将使我能够克服与其他进程的竞争条件,这些进程也试图获得相同的记录。
我有多个进程访问同一个数据库表。该表包含“TakenBy”列,该列应该包含接受者进程的 ID。
实体框架是我的数据访问层。
我的问题是如何使用我的 DataContext 对象,以便我可以从上表中检索行,并同时更新“TakenBy”列。这将使我能够克服与其他进程的竞争条件,这些进程也试图获得相同的记录。
EF 不会为您处理。您必须使用存储过程,或者必须在通过应用程序加载记录并处理并发后执行更新(通过乐观方式,即使用时间戳或行版本列,或通过悲观方式,即手动 SQL 查询)。