1
我有Tasks
表:Id (PK), TaskName, Status
状态为之一:排队,忙,完成。
我想用多线程来处理任务,为此,我需要能够在一个操作中要做到:LINQ到SQL READ试验写为一个操作
var task = db.Tasks.FirstOrDefault(t=>t.Status == (byte) TaskStatus.Queued);
task.Status = (byte) TaskStatus.Busy;
db.SubmitChanges();
显然,如果操作不是原子操作,我可以得到的并发问题。什么是(如果存在)使用Linq-to-Sql来实现上述目标的一种预期方式?
我知道我可以这样做1)storproc或2)db.ExecuteCommand("...")
或3)处理冲突with try/catch
- 但我想确保没有更好的方法。
我知道这是一个非常基本的问题,但我无法找到明确的答案。