Код: Выделить всё
using MongoDB.Driver;
using MongoDB.Driver.Linq;
Код: Выделить всё
public class Account
{
public string Name { get; set; }
public string APIKey { get; set; }
public string Secret { get; set; }
public bool Active { get; set; }
public List Stores { get; set; } = new List();
public List Users { get; set; } = new List();
}
Код: Выделить всё
public class Store
{
public string Name { get; set; }
public string Location { get; set; }
public DateTime LastMessageDate { get; set; }
public List Customers = new List();
}
Я могу выполнить фильтрацию до уровня магазина, выполнив следующие действия:
Код: Выделить всё
var filter = Builders.Filter.Eq(e => e.ID, headers.AccountID)
& Builders.Filter.ElemMatch(e => e.Stores, Builders.Filter.Eq(e => e.ID, headers.StoreID))
Я попробовал это:
Код: Выделить всё
var filter = Builders.Filter.Eq(e => e.ID, headers.AccountID)
& Builders.Filter.ElemMatch(e => e.Stores, Builders.Filter.Eq(e => e.ID, headers.StoreID))
& Builders.Filter.ElemMatch(e => e.Stores.FirstOrDefault(c=>c.ID == headers.StoreID).Customers, Builders.Filter.Eq(e => e.UUID, customerUUID));
var update = Builders.Update.Set(e => e.Stores.FirstMatchingElement().Customers, customer);
Ошибка CS1660 Невозможно преобразовать лямбда-выражение в тип 'FieldDefinition', поскольку это не тип делегата
Подробнее здесь: https://stackoverflow.com/questions/788 ... of-a-child