У меня проблемы с тем, чтобы понять, как эффективно запросить список внутри объекта.
У меня есть следующие классы:
public class IdentitySubstitutionModel
{
public Guid Id { get; set; }
public List<IdentityKeyPair> IdentityKeys { get; set; }
}
public class IdentityKeyPair
{
public string Key { get; set; }
public string Value { get; set; }
....
}
Мне нужно выполнить запрос в списке IdentityKeys в IdentitySubstitutionModel, но единственный способ, которым я смог эффективно сделать это без получение ошибок занимает слишком много времени, сначала вызывая FindAll (), а затем выполняя запрос:
using (var db = new LiteDatabase(_databaseFileName))
{
// Get a collection (or create, if doesn't exist)
var collection = db.GetCollection<IdentitySubstitutionModel>(_tableName);
// Index document using document Name property
collection.EnsureIndex(x => x.IdentityKeys[0].Key);
collection.EnsureIndex(x => x.IdentityKeys[0].Value);
results = collection.FindAll().Where(p => p.IdentityKeys.Any(x => x.Key ==
identityKeyPair.Key && x.Value == identityKeyPair.Value)).ToList();
}
Я пробовал много других способов, в том числе этот, но в итоге получаю сообщение об ошибке:
collection.Find(x => (x.IdentityKeys[0].Key == identityKeyPair.Key && x.IdentityKeys[0].Value == identityKeyPair.Value)).ToList();
Неправильно ли я строю индексы или мне нужен другой способ завершить запрос?