【发布时间】:2013-01-06 14:07:19
【问题描述】:
我有一个名为Campaign 的域对象,其中包含一些字符串属性和TrackingEntry 对象的集合。每当我从文档会话中检索查询时,此属性为空,即使我至少保存了一个跟踪条目。如何检索活动对象以便同时检索跟踪条目集合?这是Campaign的相关代码:
public class Campaign : Entity
{
private ICollection<TrackingEntry> trackingEntries;
public string BrandId { get; set; }
public ICollection<TrackingEntry> TrackingEntries
{
get { return trackingEntries ?? (trackingEntries = new Collection<TrackingEntry>()); }
}
}
有问题的方法采用逗号分隔的品牌 ID 字符串,检索具有这些品牌 ID 的所有广告系列,循环并根据跟踪条目集合的内容执行一些自定义逻辑等。以下是相关部分:
var brandIds = input.Split(',');
var campaigns = session.Query<Campaign>().Where(x => x.BrandId.In(brandIds));
foreach (var campaign in campaigns)
{
DateTime? dateClaimed = null;
var trackingEntry = campaign.TrackingEntries.FirstOrDefault(x => x.ConsumerId == consumer.Id);
if (trackingEntry != null)
{
dateClaimed = trackingEntry.CreatedOn;
}
}
我知道有一个跟踪条目,但设置断点会显示一个空集合。我认为这可能是 raven 缓存和过时的索引,但在将记录写入数据库 24 小时后问题仍然存在。我在想我可能需要一个 map-reduce 索引来处理该集合,但对它们的工作方式仍然很模糊。想法?
【问题讨论】:
标签: c#-4.0 collections ravendb