public string Resolve(RelationName t) => t?.Name ?? ResolveType(t?.Type);
public ChildrenAggregation(string name, RelationName type) : base(name) => Type = type;
/// <summary> /// Helper method to easily filter on join relations /// </summary> public QueryContainer HasRelationName(Expression <Func <T, JoinField> > field, RelationName value) => Term(t => t.Field(field).Value(value));
public ParentIdQueryDescriptor <T> Type(RelationName type) => Assign(type, (a, v) => a.Type = v);
public JoinAttribute(RelationName parent, RelationName child, params RelationName[] moreChildren) : base(FieldType.Join) =>
public string RelationName(RelationName type) => RelationNameResolver.Resolve(type);
public ParentAggregation(string name, RelationName type) : base(name) => Type = type;
public static JoinField Link(RelationName child, Id parentId) => new Child(child, parentId);
public static JoinField Root(RelationName parent) => new Parent(parent);
public Child(RelationName name, Id parent) { Name = name; ParentId = parent; }
public Parent(RelationName name) => Name = name;