partial void CopyExtraPropertiesToClone(Requirement clone, bool includeLocalProperties);
public Requirement Clone(bool includeLocalProperties) { var c = new Requirement { AssignedTo = AssignedTo, AssignedToId = AssignedToId, ChangeComment = ChangeComment, CreatedAt = CreatedAt, CreatedBy = CreatedBy, CreatedById = CreatedById, Description = Description, DifficultyLevel = DifficultyLevel, DifficultyLevelId = DifficultyLevelId, EstimatedDuration = EstimatedDuration, FieldValues = FieldValues, HasAttachments = HasAttachments, Id = Id, LastUpdatedAt = LastUpdatedAt, LastUpdatedBy = LastUpdatedBy, LastUpdatedById = LastUpdatedById, Name = Name, Number = Number, OrderNumber = OrderNumber, Package = Package, PackageId = PackageId, PackageName = PackageName, ParentId = ParentId, ParentName = ParentName, Priority = Priority, PriorityId = PriorityId, ProjectId = ProjectId, ProjectName = ProjectName, Status = Status, StatusId = StatusId, Type = Type, TypeId = TypeId, VersionNumber = VersionNumber, Attachments = Attachments.Select(x=>x.Clone(includeLocalProperties)).ToList(), Children = Children.Select(x=>x.Clone(includeLocalProperties)).ToList(), Widgets = Widgets.Select(x=>x.Clone(includeLocalProperties)).ToList(), }; CopyExtraPropertiesToClone(c, includeLocalProperties); return c; }