我有一个域对象调用Campaign
它包含了一些字符串属性和TrackingEntry
对象的集合。每当我检索文档会话的查询,这个属性是空的,即使我有至少一个跟踪条目保存。我该如何处理检索广告系列对象,以便追踪跟踪条目集合?下面是为Campaign
相关代码:RavenDB查询不补水枚举财产
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;
}
}
我知道有一个跟踪条目,但设置一个断点显示一个空的集合。我想这可能是乌鸦缓存和一个陈旧的指标,但这个问题仍然是写在这里记录到数据库后24小时。我在想,我可能需要一个地图,减少索引来处理该集合,但我仍然对他们的工作很朦胧。思考?
我完全忽略了一个事实,即当您与Raven交互时,您正在序列化和解序列化json - 感谢Matt,已修复! – levelnis