因此,当新车进入时,我需要获取最后一辆车的编号,将其加1,并将其保存为新车的“customer_number”。
我知道最简单的方法是为汽车创建一个单独的表,在那里设置“customer_number”,并在其他表中注册入站和出站记录。但这只是一个愚蠢的例子,以揭示这种情况。因此,没有必要讨论该方法的不正确性,我已经知道了:)
正如我所说,每当新车进入系统时,我都必须获取最新添加的行,获取“customer_number”,增加它并将其保存为原子操作。其他应用程序实例可能会尝试执行相同的操作,因此数据库必须在“创建任务”期间保留对最后添加的行的请求。
我认为我可以通过将隔离级别设置为串行化来实现这一点,但我认为它不能防止读取最后一行,而是防止插入新行。因此,看来锁定是解决办法。我尝试在代码中使用静态对象作为监视器,并且它可以很好地工作,但当然它仅限于同一应用程序域,我需要在数据库级别上进行一些操作。
我认为EF中没有任何东西可以锁定数据库,因此,设置表锁定并稍后释放它的最佳方法是什么?
谢谢。