Получить коллекцию Isar из строки или переменной класса? что-то вроде isar.${mycollection}

Я создал вспомогательный класс isar для всех моих вызовов isar. Я пытаюсь создать общие функции. Например:

      Future<List<dynamic>> listModel(String pModelType) async {
    final isar = await _db; 
    return isar.${pModelType}.where().findAll();       
  }  

это не работает, но я просто пытаюсь проиллюстрировать то, что пытаюсь сделать. У меня работает следующий пример кода, но мне интересно, есть ли более чистый способ сделать это?

рабочий код:

        Future<IsarCollection> getIsarModel(Isar pIsar, String pModelType) async {
    
    if(pModelType == "mymodel1") {
      return pIsar.mymodel1;
    } else if (pModelType == "mymodel2"){
      return pIsar.mymodel2;
    } else {
      return pIsar.mymodel3;
    }
    
  } 

  Future<List<dynamic>> listModel(String pModelType) async {
    final isar = await _db;
    final isarModel = await getIsarModel(isar, pModelType);  
    return isarModel.where().findAll();       
  }  

0 ответов

Другие вопросы по тегам