partial void CopyExtraPropertiesToClone(Relationship clone, bool includeLocalProperties);
public Relationship Clone(bool includeLocalProperties) { var c = new Relationship { AssignedTo = AssignedTo, CanDelete = CanDelete, CanEdit = CanEdit, EntityId = EntityId, EntityType = EntityType, Name = Name, Number = Number, PackageEntityType = PackageEntityType, PackageId = PackageId, PackageName = PackageName, PackagePath = PackagePath, ParentId = ParentId, ParentName = ParentName, ParentPath = ParentPath, Priority = Priority, Relation = Relation, RelationshipDirection = RelationshipDirection, RelationshipId = RelationshipId, RelationshipType = RelationshipType, RelationshipTypeKey = RelationshipTypeKey, Status = Status, Type = Type, Children = Children.Select(x=>x.Clone(includeLocalProperties)).ToList(), }; CopyExtraPropertiesToClone(c, includeLocalProperties); return c; }