如何在Isar db中制作几个相同类型的集合? [扑扑][伊萨尔]

问题描述 投票:0回答:3

是否可以选择在 Isar 中使用相同类型的对象创建多个集合?

Isar 文档:https://isar.dev/

我如何创建单个集合:

import 'package:isar/isar.dart';

@Collection()
class ProgramModel {
  @Id()
  int? id;
  String? title;
}

我想要第二个 ProgramModel 集合,但我无法将另一个 @Collection() 添加到同一模型。

flutter dart localdb flutter-isar
3个回答
2
投票

尝试过并且可以在多个 isar 实例(db)中使用相同的集合类。

启动新的 isar 实例:

Isar isarOne = await Isar.open(
  name: 'dbOne',
  schemas: [ContacSchema],
);


Isar isarTwo = await Isar.open(
  name: 'dbTwo',
  schemas: [ContacSchema],
);

在Web中,它在IndexedDB中创建2个DB。 在本机上,它也会创建 2 个 isar 实例。

想要一种使用相同集合类在单个 isar 实例中创建多个集合的方法,但似乎无法完成..因此将继续使用多个 isar 实例来拥有多个表。


0
投票

您可以使用相同对象模型的其他名称创建一个集合,或者在当前 isar 的范围之外创建此模型(使用新的 isar 数据库)


0
投票

只需创建一个新文件并在那里实现 ProgramModel @collection 即可。

© www.soinside.com 2019 - 2024. All rights reserved.