小编Tim*_*Tim的帖子

C# - 使用 NoSQL (MongoDB) 生成类似 Id 的“身份”?

我一直在 C# 中使用 MongoDB,并且一直使用 ObjectId,后来又使用 GUID 作为我的实体 Id。我讨厌查看这些 Id,我认为这是违反直觉的...我真的很希望能够使用整数或长整型,例如关系数据库的 Identity 列。但我很难找到一种方法来做到这一点。如果我使用集合 max + 1,这将导致竞争条件。我读过有关使用 Hi-Lo 生成器算法的内容,但它是如何工作的呢?如果我有 10 个应用程序服务器运行相同的代码怎么办?这是否意味着每个集合必须有 10 个 hi lo 身份范围?

如果有人可以向我指出一个 C# 算法来分享,那就太好了!顺便说一下,我见过 RNGCryptoServiceProvider,但不能保证它是唯一的,而且它不是一个连续的 int/long Identity。那时我宁愿使用 Hi-Lo...

谢谢,蒂姆

c# identity unique mongodb mongodb-.net-driver

2
推荐指数
1
解决办法
6430
查看次数

正则表达式 - 如何在块中查找特定文本?

我是正则表达式的新手,并希望使用一个来搜索我们的源代码控件,以查找遵循特定枚举值的代码块中的文本.即:

/(\/{2}\@debug)(.|\s)*?(\/{2}\@end-debug).*/
var junk = dontWantThis if (junk) {dont want this} if ( **myEnumValue** ) **{ var yes = iWantToFindThis if (true) { var yes2 = iWantThisToo } }**
var junk2 = dontWantThis if (junk) {dont want this}  
var stuff = dontWantThis if (junk) {dont want this} if ( enumValue ) { wantToFindThis }
var stuff = iDontWantThis if (junk) {iDontWantThisEither}
Run Code Online (Sandbox Code Playgroud)

我知道我可以(\{(/?[^\>]+)\})用来查找块,但我只想要第一个包含我想要的枚举值的代码块.我也注意到use使用(\{(/?[^\>]+)\})了第一个{和最后一个},它不会对后续组合{}.

谢谢!
蒂姆

regex

1
推荐指数
1
解决办法
196
查看次数

标签 统计

c# ×1

identity ×1

mongodb ×1

mongodb-.net-driver ×1

regex ×1

unique ×1