partial void CopyExtraPropertiesToClone(ProjectCategory clone, bool includeLocalProperties);
public ProjectCategory Clone(bool includeLocalProperties) { var c = new ProjectCategory { HasChildren = HasChildren, HasParent = HasParent, HasProjects = HasProjects, Id = Id, Name = Name, OrderNumber = OrderNumber, Organisation = Organisation, OrganisationId = OrganisationId, OrganisationName = OrganisationName, Parent = Parent, ParentId = ParentId, ParentName = ParentName, Children = Children.Select(x=>x.Clone(includeLocalProperties)).ToList(), Projects = Projects.Select(x=>x.Clone(includeLocalProperties)).ToList(), }; CopyExtraPropertiesToClone(c, includeLocalProperties); return c; }