Попытка определить, как структурировать мой конструктор и методы 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 с песней?
Все еще не решается, как поставить все это вместе.
Спасибо, Боб