我正在使用RavenDB Embedded。建888。 有照片集:
public class Photo
{
private Dictionary<string, VoteDictionaryValue> _votes = new Dictionary<string, VoteDictionaryValue>();
public Photo()
{
Created = DateTime.Now;
}
public string Id { get; set; }
public string Title { get; set; }
public string UserId { get; set; }
public string Image { get; set; }
public DateTime Created { get; private set; }
public Dictionary<string, VoteDictionaryValue> Votes
{
get { return _votes; }
protected set { _votes = value; }
}
}
有索引:
public class PhotosSortByCreated : AbstractIndexCreationTask<Photo>
{
public PhotosSortByCreated()
{
Map = photos => from photo in photos
select new {photo.Created};
Store(x => x.Created, FieldStorage.No);
Sort(x => x.Created, SortOptions.String);
}
}
和查询:
RavenQueryStatistics stat;
var query = from photo in RavenSession.Query<Photo>()
orderby photo.Created descending
select photo;
var result = query.Statistics(out stat).Skip(page*pageSize).Take(pageSize).Customize(x => x.WaitForNonStaleResults(TimeSpan.FromSeconds(3))));
逐张添加10张照片。
通过这个查询我只得到5-6。
所有新添加的照片都不会返回。
池重启后我可以在ravenDB停止索引之前添加5-6张新照片。
所有添加的照片都保存在数据库中,但它们没有编入索引。
为什么?
提前致谢。
答案 0 :(得分:1)
添加:
RavenSession.Query<Photo>().Customize(x=>x.WaitForNonStaleResultsAsOfNow())
会发生什么?