質問: 私はアイテムのために逐次参照番号が必要です。通常はID列を使用しますが、SQL 2012の時点では、次の1000にジャンプできます(1,2,1001,2002,2002)。 読んでみるEF Core 2.1では簡単なシーケンスを使用することを提案しています。問題はまだ一度に50個の数字をキャッシュしているので、今は1、2、3、51、52を見ています。 私が見ることができるSQLのドキュメントを見ると、このキャッシングを無効にすることができます。EFコアの流暢なAPIを使って行うことはできません。 提案?
回答: 私は好奇心が強いので、より洗練されたソリューションを探していますが、その間に...おそらく、あなたはこの "横向き"を乗り越えることができます。このようなシーケンスの問題のためだけにテーブルを作成します。 ``` public class mySequence { public int sequence {get; set;} public bool locked {get; set;} } ``` シーケンス上にインデックスを作成する(降順)。 1)ロックシーケンステーブル。 2) "次の"ロック解除されたシーケンス#を見つける。 3)もし存在しなければ、次のXシーケンス番号を付ける。 4) "次の"シーケンスをロックする。 5)テーブルのロックを解除する。 6)あなたの実際のデータにシーケンス番号を使用する 衝突/重複を緩和するために*一部の*リソースを独占的に制御する必要があります。 うーん、より "エレガントな"ソリューションは、それ自体を提示... Fluent APIを使用したシーケンス