Плохое состояние: тип «_SpecialTypeMirror» не является подтипом типа «ClassMirror» в приведении типа - PullRequest
1 голос
/ 18 марта 2019

Я пытаюсь запустить команду акведука для создания БД.

aqueduct db generate

но я всегда получаю эту ошибку:

Bad state: type '_SpecialTypeMirror' is not a subtype of type 'ClassMirror' in type cast

Я использую такую ​​модель: импорт «пакет: акведук / aqueduct.dart»; import 'package: controle_rural_api / models / Farm.dart';

класс Пользователь расширяет ManagedObject реализует _User {}

class _User {

  @primaryKey
  int id;
  String otherThings;
  bool active;

  ManagedSet<Farm> farms;
}

Это полная ошибка:

*** Uncaught error
    Bad state: type '_SpecialTypeMirror' is not a subtype of type 'ClassMirror' in type cast
  **** Stacktrace
  * #0      EntityBuilder._getTableDefinitionForType (package:aqueduct/src/db/managed/builders/entity_builder.dart:236:16)
  * #1      new EntityBuilder (package:aqueduct/src/db/managed/builders/entity_builder.dart:16:31)
  * #2      new DataModelBuilder.<anonymous closure> (package:aqueduct/src/db/managed/builders/data_model_builder.dart:7:42)
  * #3      MappedListIterable.elementAt (dart:_internal/iterable.dart:414:29)
  * #4      ListIterable.toList (dart:_internal/iterable.dart:219:19)
  * #5      new DataModelBuilder (package:aqueduct/src/db/managed/builders/data_model_builder.dart:7:71)
  * #6      new ManagedDataModel.fromCurrentMirrorSystem (package:aqueduct/src/db/managed/data_model.dart:46:9)
  * #7      MigrationBuilderExecutable.execute (<data:application/dart>:13:557)
  * <asynchronous suspension>
  * #8      main (<data:application/dart>:9:35)
  * <asynchronous suspension>
  * #9      _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:296:32)
  * #10     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)
  ****

Не смотрите ничего из моего кода, но я не могу сгенерировать код. Что может быть?

1 Ответ

1 голос
/ 18 марта 2019

Я нашел ошибку. Был в дженериках .

В class User extends ManagedObject implements _User{} я забыл тип, поэтому должно быть так: class User extends ManagedObject<_User> implements _User{}

...