我有一個域對象調用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