Поле класса объекта типа, toMap для sqlIte - PullRequest
0 голосов
/ 05 февраля 2020

Попытка определить, как структурировать мой конструктор и методы fromDb в dart / Flutter при работе с классом модели, содержит поле типа List. Есть много примеров использования конструктора / метода toMap / fromDB в классе модели при работе с sqflite, но не найдено ни одного (пока), где одно из полей имеет тип объекта (в частности, список объектов - т.е. в моем примере List<Pup>). Я считаю, что это приведет к карте карт для одного предмета, но я изо всех сил пытаюсь это выяснить.

Частичный пример из flutter.dev (постоянные данные)

// Update the Dog class to include a `toMap` method.
class Dog {
  final int id;
  final String name;
  final int age;

  Dog({this.id, this.name, this.age});

  // Convert a Dog into a Map. The keys must correspond to the names of the
  // columns in the database.
  Map<String, dynamic> toMap() {
    return {
      'id': id,
      'name': name,
      'age': age,
    };
  }
}

// Define a function that inserts dogs into the database
Future<void> insertDog(Dog dog) async {
  // Get a reference to the database.
  final Database db = await database;

  // Insert the Dog into the correct table. You might also specify the
  // `conflictAlgorithm` to use in case the same dog is inserted twice.
  //
  // In this case, replace any previous data.
  await db.insert(
    'dogs',
    dog.toMap(),
    conflictAlgorithm: ConflictAlgorithm.replace,
  );
}

Предположим, собака В модели было другое поле под названием litter, и этот класс включал в себя поля color, weight, eyeColor.

Я пытаюсь понять, как метод toMap должен иметь структуру, чтобы справиться с этим?

Дополнительные мысли : поскольку sqflite - это не sql db, возможно, я ошибаюсь?

Исходя из моего проекта, я работаю с классом песни, который просто определяет песню, а затем имеет класс плейлиста, который в конечном итоге будет использоваться для привязки песен к заданному списку воспроизведения в моем приложении.

будет ли лучшим подходом просто использовать что-то вроде поля int playListIds [] в моем классе Song, а затем просто связать один или несколько playListIds с песней?

Все еще не решается, как поставить все это вместе.

Спасибо, Боб

...