/// <summary> /// Create child table with multiple owners (OwnerType + OwnerId) /// </summary> /// <param name="id">Table Id</param> /// <returns></returns> public static ChildDataTableConfig <TParent, TChild, TChildId> MultipleOwners(string id) { var config = new ChildDataTableConfig <TParent, TChild, TChildId>(id) { RelationshipType = RelationshipType.MultipleOwners }; return(config); }
/// <summary> /// Create child table with many-to-many relation /// </summary> /// <param name="id">Table Id</param> /// <param name="childsFunc">Child entities accessor</param> /// <returns></returns> public static ChildDataTableConfig <TParent, TChild, TChildId> ManyToMany(string id, Expression <Func <TParent, IList <TChild> > > childsFunc) { var config = new ChildDataTableConfig <TParent, TChild, TChildId>(id) { RelationshipType = RelationshipType.ManyToMany, Relationship_ChildsCollection = ExpressionHelper.GetExpressionText(childsFunc) }; return(config); }
/// <summary> /// Create child table with one-to-many relation /// </summary> /// <param name="id">Table Id</param> /// <param name="parentFunc">Parent accessor</param> /// <returns></returns> public static ChildDataTableConfig <TParent, TChild, TChildId> OneToMany(string id, Expression <Func <TChild, TParent> > parentFunc) { var config = new ChildDataTableConfig <TParent, TChild, TChildId>(id) { RelationshipType = RelationshipType.OneToMany, Relationship_LinkToParent = ExpressionHelper.GetExpressionText(parentFunc) }; return(config); }