我正在評估RavenDB新項目。如何獲得連續的ID與RavenDb默認ID發生器
如果我創建100個實體我得到了長足的連續ID,如:
- 帖子/ 1
- 職位/ 2
- 職位/ 3
- ...
- 職位/ 100
但是,如果我建立一個新的DocumentStore實例(應用程序重新啓動後)並嘗試創建n EW實體我有奇怪的IDS是這樣的:
- 職位/ 1025
- 職位/ 1026
- 職位/ 1027
任何幫助嗎?
注:我使用的是嵌入式服務器與ASP.NET MVC 3
我正在評估RavenDB新項目。如何獲得連續的ID與RavenDb默認ID發生器
如果我創建100個實體我得到了長足的連續ID,如:
但是,如果我建立一個新的DocumentStore實例(應用程序重新啓動後)並嘗試創建n EW實體我有奇怪的IDS是這樣的:
任何幫助嗎?
注:我使用的是嵌入式服務器與ASP.NET MVC 3
這是設計的 - 只要你創建一個DocumentStore例如希洛新的密鑰生成,所以你看到的差距從未使用的IDS另一個會話。
爲什麼你關心連續的ID?
這可能是關於這個問題很好看,太:http://groups.google.com/group/ravendb/browse_thread/thread/3dbcacbc8b366ff8/
你可能想看看在RavenDB身份選項,但這不是真正的東西,你應該關心。
來自RavenDb文檔,you're after the Identity strategy。
RavenDB還支持Identity的概念,例如,如果您需要連續使用 ID。通過在 實體中創建字符串Id屬性,並將其設置爲以斜線(/)結尾的值,可以讓 告知RavenDB將其用作實體的關鍵前綴。在調用SaveChanges()後,前綴 後跟下一個可用的整數ID將爲您實體的ID爲 的ID。
例如,
var foo = new Foo();
foo.Id = "foo/"; // <-- this will use the Identity strategy, not HiLo.
session.Store(foo);
session.SaveChanges();
如果連續的ID對您有影響,您通常會做錯事。 – 2011-05-18 09:12:19
有時候我覺得這很合理。例如,發票號碼預計是連續的,唯一的和不變的。在某些情況下似乎是合理的身份。或者,您是否總是*使用代理ID,然後通過其他方式手動生成順序發票號碼? – pettys 2015-03-12 15:14:25