不支持ShardedDocumentStore和Sharded Linq查询的索引创建失败

时间:2012-04-12 17:00:25

标签: ravendb sharding

我刚用RavenDB实现了分片。第一次运行时,此代码:

tempShardedDocumentStore = new ShardedDocumentStore(new ShardStrategy(), shards);
tempShardedDocumentStore.Initialize();

IndexCreation.CreateIndexes(typeof(RavenDataAccess).Assembly, tempShardedDocumentStore);

...产生此错误:

System.TypeInitializationException:'WriteToRaven.Data的类型初始值设定项。 RavenDataAccess'抛出异常。 ---> System.NotSupportedException: Sharded 文档存储没有数据库命令。你需要明确使用 用于访问数据库命令的分片实例

首先,ShardedDocumentStore确实有DatabaseCommands:

enter image description here

其次,如果那样不起作用,应该这样做吗?

IndexCreation.CreateIndexes(typeof(RavenDataAccess).Assembly, shards[0]);

如果是这样,现在我的linq查询将不起作用:

System.NotSupportedException:目前不支持Sharded linq查询    在Raven.Client.Shard.ShardedDocumentSession.QueryT

using (IDocumentSession ravenSession = GetRavenSession())
{
    return ravenSession.Query<T>().OrderByDescending(orderByClause).FirstOrDefault();
}

如何让它发挥作用?

注意:GetRavenSession()从上面显示的分片文档存储中返回OpenSession()。

1 个答案:

答案 0 :(得分:0)

鲍勃霍恩, 你使用什么构建?我们最近改进了分片支持。 我们现在支持linq进行分片,以及创建索引。