EntityRelation.manyToMany constructor

EntityRelation.manyToMany({
  1. String originName = 'id',
  2. required String tableName,
  3. required String localPropName,
  4. required String foreignPropName,
  5. String destinationName = 'id',
})

Constructs an instance of many-to-many relation.

Example

import 'package:kind/kind.dart';

class Person extends Entity {
  static final EntityKind<Person> kind = EntityKind<Person>(
    name: 'Person',
    define: (c) {
      // ...
      c.addList<Person>(
        id: 2,
        name: 'friends',
        itemsKind: Person.kind,
        field: (person) => person.friends,
        relation: EntityRelation.manyToMany(
          tableName: 'Friendship'
          localPropName: 'from_friend_id',
          foreignPropName: 'to_friend_id'),
        ),
      );
      // ...
    },
  );

  // ...

  late final ListField<Person> friends = ListField<Person>();
}

Implementation

factory EntityRelation.manyToMany({
  String originName = 'id',
  required String tableName,
  required String localPropName,
  required String foreignPropName,
  String destinationName = 'id',
}) {
  return EntityRelation(
    localPropNames: [originName],
    junctions: [
      EntityJunction(
        tableName: tableName,
        localPropNames: [localPropName],
        foreignPropNames: [foreignPropName],
      ),
    ],
    foreignPropNames: [destinationName],
  );
}