0

RavenDBを初めて使用しますが、2つのドキュメントをRaven2.0で結合することについて質問があります。

このページhttp://daniellang.net/joining-documents-in-ravendb-2-0/を見つけました。これは、2つのドキュメントを結合するための解決策を見つけるのに役立ちました。

最初に私のコードを見てください(コンパイルされます)

internal class Program
{
    private static void Main(string[] args)
    {
        using (var store = new EmbeddableDocumentStore {DataDirectory = @"C:\temp\ravendata"}.Initialize())
        {
            using (var session = store.OpenSession())
            {
                var products = session.Query<Product, UserProducts>()
                                      .AsProjection<UserProductProjection>()
                                      .ToList();
            }
        }
    }
}

public class Product
{
    public string Id { get; set; }
    public string Name { get; set; }
    public string UserId { get; set; }
}

public class User
{
    public string Id { get; set; }
    public string Name { get; set; }
}

public class UserProductProjection
{
    public string Id { get; set; }
    public string UserName { get; set; }
    public string ProductName { get; set; }
    public string ProductId { get; set; }
}

internal class UserProducts : AbstractIndexCreationTask<Product, UserProductProjection>
{
    public UserProducts()
    {
        Map = products => from product in products
                          select new
                                 {
                                     UserName = LoadDocument<User>(product.UserId).Name,
                                     ProductName = product.Name,
                                     ProductId = product.Id
                                 };

        Index(projection => projection.ProductId, FieldIndexing.Analyzed);
        Index(projection => projection.ProductName, FieldIndexing.Analyzed);
        Store(projection => projection.UserName, FieldStorage.Yes);
    }
}

残念ながらそれは動作しません:(

Raven.Database.Exceptions.IndexDoesNotExistsException was unhandled
  HResult=-2146233088
  Message=Could not find index named: UserProducts
  Source=Raven.Database
  StackTrace:
       at Raven.Database.DocumentDatabase.<>c__DisplayClass9a.<Query>b__90(IStorageActionsAccessor actions) in c:\Builds\RavenDB-Stable\Raven.Database\DocumentDatabase.cs:line 1100
  ....

全く手がかりがない!! 私が知ったようにそれはまだかなり新しいので、グーグルはこの主題についても私を助けません。

誰かがヒントや解決策を持っているなら、私は非常に感謝するでしょう。

4

1 に答える 1

2

インデックスを定義しましたが、ravendbで作成していません。

静的インデックスの定義を参照してくださいが、基本的には必要です...。

IndexCreation.CreateIndexes(typeof(UserProducts).Assembly, documentStore);
于 2013-01-08T22:44:56.050 に答える