我想将 Auth User Table 用于其他表。具体来说,我想将其他表的 ID 用作外键。在我开始在 chanel.dart 中实现 OAuth2 之前,它运行良好。现在它抛出一个错误:
Data Model Error: Relationship 'resourceOwner' on '_ManagedAuthToken' expects that just one 'ManagedObject' subclass uses a table definition that extends 'ResourceOwnerTableDefinition. But the following implementations were found: User,User. That's just how it is for now.
我不知道如何解决这个问题。而且我认为很明显,如果您有多个用户,并且有个人资料,您应该能够将 userID 作为外键,以显示所有权。
编辑:
ManagedObject 声明如下所示:
import 'package:lobBook_backend/lobBook_backend.dart';
import 'Book.dart';
import 'User.dart';
class _userBooksLikes extends ManagedObject<_userBooksLikes> implements _userBooksLikes{
}
class _userBooksLikes {
@primaryKey
int id;
@Relate(#usrEvntSts, onDelete: DeleteRule.cascade)
User user;
@Relate(#usrEvntSts, onDelete: DeleteRule.cascade)
Book book;
@Column(indexed: true)
int status;
}
import 'package:lobBook_backend/lobBook_backend.dart';
import '_userBooksLikes.dart';
import 'User.dart';
class Book extends ManagedObject<_Book> implements _Book {}
class _Book {
@primaryKey
int id;
@Column(indexed: true)
String name;
@Column(indexed: true)
DateTime date;
@Relate(#ownedBooks)
User user;
ManagedSet<_userBooksLikes> usrEvntSts;
}
import 'package:aqueduct/managed_auth.dart';
import 'package:lobBook_backend/lobBook_backend.dart';
import 'package:lobBook_backend/model/_userBooksLikes.dart';
import 'Book.dart';
class User extends ManagedObject<_User> implements _User, ManagedAuthResourceOwner<_User> {}
class _User extends ResourceOwnerTableDefinition {
ManagedSet<_userBooksLikes> usrEvntSts;
ManagedSet<Book> ownedBooks;
}