【发布时间】:2014-05-03 13:12:09
【问题描述】:
我正在尝试在嵌入的 RavenDB 中使用版本控制包,但我似乎无法查询修订。
我正在使用 Global.asax.cs 中的代码初始化数据库
// Initialise RavenDB embedded
Store = new EmbeddableDocumentStore
{
DataDirectory = "~/App_Data",
UseEmbeddedHttpServer = true,
};
Store.ActivateBundle("Versioning");
Store.Initialize();
ActivateBundle方法是一个扩展方法:(来自this question)
public static void ActivateBundle(this EmbeddableDocumentStore documentStore, string bundleName)
{
var settings = documentStore.Configuration.Settings;
var activeBundles = settings[Constants.ActiveBundles];
if (string.IsNullOrEmpty(activeBundles))
settings[Constants.ActiveBundles] = bundleName;
else if (!activeBundles.Split(';').Contains(bundleName, StringComparer.OrdinalIgnoreCase))
settings[Constants.ActiveBundles] = activeBundles + ";" + bundleName;
}
我正在使用此代码查询修订:
public IList<FormRevision> GetRevisions(Guid formId)
{
using (var session = MvcApplication.Store.OpenSession())
{
var revisions = session.Advanced.GetRevisionsFor<Form>(formId.ToString(), 0, 10);
return revisions.Select(formRevision => session.Advanced.GetMetadataFor(formRevision)).Select(metadata => new FormRevision
{
FormId = formId,
RevisionNumber = metadata.Value<int>("Raven-Document-Revision"),
RevisionDateTime = metadata.Value<DateTime>("Last-Modified")
}).ToList();
}
}
GetRevisionsFor 方法没有返回任何数据。
【问题讨论】: