partial void CopyExtraPropertiesToClone(ScriptPackage clone, bool includeLocalProperties);
public ScriptPackage Clone(bool includeLocalProperties) { var c = new ScriptPackage { Id = Id, Name = Name, OrderNumber = OrderNumber, Parent = Parent, ParentId = ParentId, Project = Project, ProjectId = ProjectId, Children = Children.Select(x=>x.Clone(includeLocalProperties)).ToList(), Scripts = Scripts.Select(x=>x.Clone(includeLocalProperties)).ToList(), }; CopyExtraPropertiesToClone(c, includeLocalProperties); return c; }