我需要一个顺序的参考编号。通常我只使用Identity列,但是从SQL 2012开始,它们可以跳到下一个1000(我看到1,2,1001,2001,2002)。
通过阅读,我看到了使用序列的建议,因为在EF Core 2.1中现在很容易。问题在于它仍然有一些缓存,一次只能存储50个数字,所以我现在看到的是1、2、3、51、52。
看一下SQL文档,我可以看到您可以禁用此缓存,但我无法看到通过EF Core中的流畅API来进行缓存。
建议?
答案 0 :(得分:0)
我很好奇,所以我正在寻找一种更优雅的解决方案,但与此同时...也许您可以解决这个问题。为此表创建一个表,就像这样:
public class mySequence {
public int sequence {get; set;}
public bool locked {get; set;}
}
在序列上创建索引(降序)。 1)锁定序列表; 2)查找“下一个”解锁序列号; 3)如果没有,则用下一个X序列号进行播种; 4)锁定“下一个”序列号; 5)解锁表; 6)在实际数据中使用序列号
必须对 some 资源具有排他性控制,以减轻冲突/重复。
嗯,更“优雅”的解决方案展现了出来...