0
這裏的設置,我有包含像這樣的事件列表的對象:如何在嵌套對象的查詢類型在RavenDB
public class Order
{
public string Name {get; set;}
public List<OrderEvent> OrderEvents {get; set;}
public bool IsComplete() => OrderEvents.Any(e => e.GetType() == typeof(OrderComplete));
}
public class OrderEvent
{
public DateTime TimeStamp {get; set;}
}
public class OrderSubmitted : OrderEvent {...quantity ect...}
public class OrderPaidFor : OrderEvent {...amounts...}
public class OrderComplete : OrderEvent {...more stuff...}
現在我可以轉儲這個數據到數據庫並把它拉出來,一切都很好,但是我怎麼寫一個查詢來獲得完成的訂單,而不需要拉取客戶端的所有訂單並在那裏過濾?
我試過以下查詢,但我被告知我無法像那樣轉換GetType。
Session.Query<Order>()
.Where(o => o.Events.Any(e => e.GetType() == typeof(OrderComplete)))
.ToList();
我敢肯定有做的一個很好的方式使用這個和JObjects查詢$ type屬性,但谷歌和我的努力沒有想出什麼好東西呢。
謝謝。
這並不是我期望的答案,但是它讓代碼更易於閱讀和使用。有時候,簡單的答案是最好的答案。謝謝! – Yojin