[英]Get all elements from Lists inside a List
我有以下數據模型:
public class Customer
{
[BsonId]
public int CustomerId { get; set; }
public string Name { get; set; }
}
public class Order
{
[BsonId]
public int OrderId { get; set; }
[BsonRef("customers")]
public Customer Customer { get; set; }
}
public class Cart
{
[BsonId]
public int CartID { get; set; }
public List<Order> OrderList { get; set; }
}
現在,我想通過我的購物車集合上的查詢來訪問客戶。 我嘗試過這樣的事情:
var collectionCarts = db.GetCollection<Cart>("carts");
var result = collectionCarts.Include("OrderList.Customer").Find(x => x.OrderList[0].Customer.CustomerId == 2);
但是,所有嘗試都會導致一個空的客戶對象。 我用LiteDB-Viewer檢查過的數據庫似乎正常。
您可以這樣獲得客戶:
using System.Linq;
collectionCarts.SelectMany(c => c.OrderList.Select(o => o.Customer));
您是在嘗試僅檢查列表中的第一項還是列表中的任何項? 因為在您的查詢中,您明確地僅查詢第一個查詢。
如果沒有(我假設),請嘗試如下操作:
var result = collectionCarts.Include("OrderList.Customer").
Find(x => x.Select(v => v.OrderList).Select(v =>v.Customer).
Select(v => v.CustomerId).ToList().Contains(2));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.