参数类型'GeneratedIntColumn'不能分配给参数类型'int':Moor-Flutter

巴内特·特姆瓦·姆西斯卡

我试图在连接两个表时设置与Moor-Flutter的外键关系,但在VS Code中收到以下错误;

参数类型'GeneratedIntColumn'不能分配给参数类型'int'。

起初我以为是因为我将自动增量字段用作外键,但是现在我不确定,因为在更改代码时仍然会收到错误。

这是我的代码。比较时,该错误发生在join语句上;task.id.equals(categories.taskId)。

import 'package:moor/moor.dart';
import 'package:moor_flutter/moor_flutter.dart';

part 'moor_database.g.dart';

@DataClassName("Category")
class Categories extends Table {
  IntColumn get id => integer().autoIncrement()();
  IntColumn get taskId =>
      integer().nullable().customConstraint('NULL REFERENCES tasks(id)')();
  TextColumn get name => text().withLength(min: 1, max: 100)();
  TextColumn get icon => text()();
  TextColumn get color => text()();
}

class Tasks extends Table {
  IntColumn get id => integer().autoIncrement()();
  TextColumn get name => text().withLength(min: 1, max: 200)();
  BoolColumn get completed => boolean().withDefault(Constant(false))();
}

@UseMoor(tables: [Categories, Tasks], daos: [CategoryDao])
class AppDatabase extends _$AppDatabase {
  AppDatabase()
      : super((FlutterQueryExecutor.inDatabaseFolder(
          path: 'todo.sqlite',
          logStatements: true,
        )));

  @override
  int get schemaVersion => 1;

  @override
  MigrationStrategy get migration =>
      MigrationStrategy(beforeOpen: (details) async {
        await customStatement('PRAGMA foreign_keys = ON');
      });
}

class CategoryWithTask {
  final Category category;
  final Task task;

  CategoryWithTask({@required this.category, @required this.task});
}

@UseDao(tables: [Categories, Tasks])
class CategoryDao extends DatabaseAccessor<AppDatabase>
    with _$CategoryDaoMixin {
  final AppDatabase db;

  CategoryDao(this.db) : super(db);
  Stream<List<CategoryWithTask>> watchAllCategories() {
    return (select(categories)
          ..orderBy(([
            (c) => OrderingTerm(expression: c.name),
          ])))
        .join([leftOuterJoin(tasks, tasks.id.equals(categories.taskId))])
        .watch()
        .map((rows) => rows.map((row) {
              return CategoryWithTask(
                  category: row.readTable(categories),
                  task: row.readTable(tasks));
            }));
  }
}
巴内特·特姆瓦·姆西斯卡

通过查看https://resocoder.com/2019/07/17/moor-room-for-flutter-3-foreign-keys-joins-migrations-fluent-sqlite-database/中的代码示例,我已经意识到我的错误

代替 tasks.id.equals(categories.taskId)

连接中的表达式应为 tasks.id.equalsExp(categories.taskId)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

参数类型'Container Function(BuildContext,int)'不能分配给参数类型'Widget Function(BuildContext,int,int)'

来自分类Dev

Flutter-Firestore“参数类型'Map <String,dynamic> Function()'不能分配给参数类型'Map <String,dynamic>”

来自分类Dev

无法将参数类型“上下文”分配给参数类型“ BuildContext”-Flutter

来自分类Dev

Flutter SQLlite无法将参数类型'Future <String>'分配给参数类型'String'错误

来自分类Dev

Flutter Dart-无法将参数类型'String'分配给参数类型'Map <String,dynamic>'

来自分类Dev

Flutter:无法将参数类型“ dynamic”分配给参数类型“ Map <String,dynamic>”

来自分类Dev

错误:无法将参数类型'TextEditingController'分配给参数类型'String'。在FLUTTER中

来自分类Dev

无法将参数类型“颜色”分配给参数类型“ int”

来自分类Dev

参数类型“ CheckIn”不能分配给参数类型“()-> CheckIn”

来自分类Dev

参数类型不能分配给参数类型,应为

来自分类Dev

类型'this'的参数不能分配给'工具'类型的参数

来自分类Dev

类型'“”'的参数不能分配给类型'“ prototype”'茉莉的参数

来自分类Dev

类型“ X”的参数不能分配给类型“ Y”的参数

来自分类Dev

“预订”类型的参数不能分配给“功能”类型的参数

来自分类Dev

参数类型'Future <>'不能分配给参数类型''

来自分类Dev

类型'InputType []'的参数不能分配给类型'GenericType []'的参数

来自分类Dev

类型“ Response”的参数不能分配给类型“ SetStateAction”的参数

来自分类Dev

“1”类型的参数不能分配给“number[]”类型的参数

来自分类Dev

'true' 类型的参数不能分配给类型的参数

来自分类Dev

“Params”类型的参数不能分配给“string”类型的参数

来自分类Dev

通用扩展参数不能分配给参数类型

来自分类Dev

参数类型'jsObject'不能分配给'buildContext'参数吗?

来自分类Dev

参数类型“ A”不能分配给类型“ B”吗?

来自分类Dev

Flutter Google Maps Polyline-无法将参数类型“ LatLng”分配给参数类型“ List <LatLng>”

来自分类Dev

Flutter中无法将参数类型'String'分配给参数类型'Uint8List'/ postUrl方法

来自分类Dev

Flutter / Dart错误:无法将参数类型'Null Function(Key)'分配给参数类型'void Function(Object)'

来自分类Dev

将Integer类型分配给int

来自分类Dev

参数类型“对象”不能分配给参数类型“ System.Windows.Forms.Control”

来自分类Dev

尽管参数类型继承,但不能分配给参数类型

Related 相关文章

  1. 1

    参数类型'Container Function(BuildContext,int)'不能分配给参数类型'Widget Function(BuildContext,int,int)'

  2. 2

    Flutter-Firestore“参数类型'Map <String,dynamic> Function()'不能分配给参数类型'Map <String,dynamic>”

  3. 3

    无法将参数类型“上下文”分配给参数类型“ BuildContext”-Flutter

  4. 4

    Flutter SQLlite无法将参数类型'Future <String>'分配给参数类型'String'错误

  5. 5

    Flutter Dart-无法将参数类型'String'分配给参数类型'Map <String,dynamic>'

  6. 6

    Flutter:无法将参数类型“ dynamic”分配给参数类型“ Map <String,dynamic>”

  7. 7

    错误:无法将参数类型'TextEditingController'分配给参数类型'String'。在FLUTTER中

  8. 8

    无法将参数类型“颜色”分配给参数类型“ int”

  9. 9

    参数类型“ CheckIn”不能分配给参数类型“()-> CheckIn”

  10. 10

    参数类型不能分配给参数类型,应为

  11. 11

    类型'this'的参数不能分配给'工具'类型的参数

  12. 12

    类型'“”'的参数不能分配给类型'“ prototype”'茉莉的参数

  13. 13

    类型“ X”的参数不能分配给类型“ Y”的参数

  14. 14

    “预订”类型的参数不能分配给“功能”类型的参数

  15. 15

    参数类型'Future <>'不能分配给参数类型''

  16. 16

    类型'InputType []'的参数不能分配给类型'GenericType []'的参数

  17. 17

    类型“ Response”的参数不能分配给类型“ SetStateAction”的参数

  18. 18

    “1”类型的参数不能分配给“number[]”类型的参数

  19. 19

    'true' 类型的参数不能分配给类型的参数

  20. 20

    “Params”类型的参数不能分配给“string”类型的参数

  21. 21

    通用扩展参数不能分配给参数类型

  22. 22

    参数类型'jsObject'不能分配给'buildContext'参数吗?

  23. 23

    参数类型“ A”不能分配给类型“ B”吗?

  24. 24

    Flutter Google Maps Polyline-无法将参数类型“ LatLng”分配给参数类型“ List <LatLng>”

  25. 25

    Flutter中无法将参数类型'String'分配给参数类型'Uint8List'/ postUrl方法

  26. 26

    Flutter / Dart错误:无法将参数类型'Null Function(Key)'分配给参数类型'void Function(Object)'

  27. 27

    将Integer类型分配给int

  28. 28

    参数类型“对象”不能分配给参数类型“ System.Windows.Forms.Control”

  29. 29

    尽管参数类型继承,但不能分配给参数类型

热门标签

归档