2010-07-08 19 views
1

是否可以找出实体的索引?例如,我的用户正在创建数千个Foos。我可以使用它的键找到一个任意的Foo实例,但我不知道它的索引与所有其他Foos相比。我想弄清楚“这是20000美元的Foo 12”。我只有一个Foos的排序顺序。有这样的可能吗?找出给定一些过滤器的实体的索引?

谢谢

回答

2

不平凡。

如果你知道你的实体的关键,你可以使用你的排序顺序做一个只有键的查询,只是迭代(和计数)返回的键,直到找到你想要的。您可以使用查询游标和任务链将作业分成合理的块。

如果您的索引只是创建的顺序,您可以通过存储单个计数器实体来交替取消归一化。每次你想创建一个新的Foo,事务性地锁定计数器对象,增加它,然后将新的计数器值写回到计数器和新的Foo。这会阻止您一次创建多个Foo实体,但如果您不需要立即向用户返回ID,则可以将实体创建推迟到一个任务。