Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 使用@Relate和unique_Dart_Aqueduct - Fatal编程技术网

Dart 使用@Relate和unique

Dart 使用@Relate和unique,dart,aqueduct,Dart,Aqueduct,我如何使用相关和独特的渡槽ORM 在我的代码中,我希望userapp是唯一的? 如果我试图将@列(unique:true)放入,我会收到如下错误: ***“\u Professional”上的关系“userapp”不能同时具有“Column”和“Relate”元数据。添加索引标志或 关系的可空性,请参阅“Relate”的构造函数 我的代码如下: class Professional extends ManagedObject<_Professional> implements _Pr

我如何使用相关和独特的渡槽ORM

在我的代码中,我希望userapp是唯一的? 如果我试图将
@列(unique:true)
放入,我会收到如下错误:

***“\u Professional”上的关系“userapp”不能同时具有“Column”和“Relate”元数据。添加索引标志或 关系的可空性,请参阅“Relate”的构造函数

我的代码如下:

class Professional extends ManagedObject<_Professional> implements _Professional {}

class _Professional {

  @primaryKey
  int id;
  @Relate(#professionals)
  Userapp userapp;
  @Column(defaultValue: 'true')
  bool active;  

  ManagedSet<ProfessionalSpecialty> professionalSpecialties;

}
class Professional扩展ManagedObject实现_Professional{}
职业类{
@主键
int-id;
@关系(专业人士)
用户应用程序用户应用程序;
@列(默认值:“true”)
布尔活跃;
管理专业;
}

作为
userapp
基础的外键列是否唯一取决于反向关系属性。在本例中,反过来是
Userapp.professionals

如果
Userapp.professionals
类型为
professionals
,则将唯一约束添加到
Userapp
;这是一种“只有一个”的关系

如果
Userapp.professionals
类型为
ManagedSet
,则不应用唯一约束;这是一种“有很多”的关系

我猜,因为您使用的是复数形式(
professionals
),所以您声明的是
ManagedSet
。更改
\u Userapp
表定义中的声明,并确保与
\u Professional
中的声明相反:

class _Userapp {
  ...
  Professional professional;
}
class _Professional {
  ...
  @Relate(#professional)
  Userapp userapp;

}