我一直在使用MongoDB和C#,並且一直在使用ObjectIds,然後是我的Entity Id的GUID。我討厭看這些Id,我認爲這是違反直覺的......我真的希望能夠使用整數或長整數,如關係數據庫標識列。但我很難找到一種方法來做到這一點。如果我使用收集最大值+ 1,那將導致競爭條件。我已閱讀過有關使用Hi-Lo Generator算法的信息,但這是如何工作的?如果我有10臺應用服務器運行相同的代碼會怎麼樣?這是否意味着每個集合必須有10個喜歡身份範圍?C# - 與NoSQL(MongoDB)一樣生成「身份」像Id的?
如果有人可以指向我一個C#算法來分享,那將非常棒!順便說一下,我已經看到了RNGCryptoServiceProvider,但這並不保證是唯一的,它不是一個順序的int/long標識。我寧願使用高羅在這一點......
感謝, 添
我已經在這裏創建了一個實現:https://github.com/alexjamesbrown/MongDBIntIdGenerator - 這是一個正在進行的工作,需要更多的測試等......但這是一個開始 – Alex