无法通过C#向RavenDB数据库添加索引

时间:2013-05-02 14:35:35

标签: c# nosql ravendb

我正在尝试创建一个简单的索引,其中包含我的文档中的两个字段:TraceRowID,LoadDate。

所以我创建了以下类:

using Model;
using Raven.Abstractions.Indexing;
using Raven.Client.Indexes;
using Raven.Client.Linq;
using Raven.Client.Document;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Indexes
{
    public class IDLoadDateIndex : AbstractIndexCreationTask<ServiceTrace>
    {
        public IDLoadDateIndex()
        {
            Map = serviceTrace => from st in serviceTrace
                                  select new { ID = st.TraceRowID, LoadDate = st.LoadDate };
        }
    }
}

我的模型是“ServiceTrace”:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
    public class ServiceTrace
    {
        public int TraceRowID { get; set; }
        public string StatusDescription { get; set; }
        public string FullExceptionText { get; set; }
        public string LoadDate { get; set; }
    }
}

我的DAL就是这样:

using Indexes;
using Raven.Client.Indexes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DAL
{
    public class DbConnection
    {
        private readonly static DbConnection instance = new DbConnection();
        private Raven.Client.Document.DocumentStore documentStore;

        static DbConnection()
        {
        }

        private DbConnection()
        {
            this.documentStore = new Raven.Client.Document.DocumentStore { Url = "http://btadmins:8080/" };            
            this.documentStore.Initialize();
            IndexCreation.CreateIndexes(typeof(IDLoadDateIndex).Assembly, this.documentStore);
        }

        public static DbConnection Instance
        {
            get
            {
                return instance;
            }
        }

        public Raven.Client.Document.DocumentStore DocumentStore
        {
            get
            {
                return documentStore;
            }
        }
    }
}

出于某种原因,当在“CreateIndexes”行上单步执行调试模式时,它会成功完成。但我在RavenDB管理工作室silverlight应用程序上看不到任何索引。 可能是什么问题?

1 个答案:

答案 0 :(得分:0)

也许您正在寻找工作室中的指定数据库?通过在此处不命名特定数据库,您将在Raven的系统数据库中创建索引。